sga-help.ru

Демо (html) Технология программирования



Разработка графического интерфейса. Разработка главного и вспомогательного меню (меню в виде строки данных). Теоретическая часть

В состав Windows входит ряд типовых диалоговых окон, таких как окно выбора загружаемого файла, окно выбора шрифта, окно для настройки принтера и т.д. Работа со стандартными диалоговыми окнами осуществляется в три этапа.

Вначале на форму помещается соответствующий компонент и осуществляется настройка его свойств. На втором этапе осуществляется вызов стандартного для диалогов метода Execute, который создает и показывает на экране диалоговое окно. Вызов этого метода обычно располагается внутри обработчика какого-либо события. Например, обработчик выбора опции меню «Открыть файл» может вызвать метод execute диалога TOpenDialog, обработчик нажатия инструментальной кнопки «сохранить» может вызвать такой же метод у компонента TSaveDialog и т.д. Только после обращения к Execute на экране появляется соответствующее диалоговое окно. Окно диалога является модальным окном, поэтому сразу после обращения к Execute дальнейшее выполнение программы приостанавливается до тех пор, пока пользователь не закроет окно.

TOpenDialog — диалог открытия файла. Свойство FileName содержит выбранный файл при успешном завершении диалога.

TSaveDialog — диалог сохранения файла. Свойство FileName имеет то же самое значение.

TFontDialog — создает и обслуживает стандартное окно выбора шрифта. Результат выбора шрифта содержит свойство Font.

TColorDialog — создает и обслуживает стандартное окно выбора цвета. Свойство Color содержит выбранный цвет.

TOpenPictureDialog — специализированный диалог для открытия графических файлов. Свойство FileName содержит имя файла.

TSavePictureDialog — специализированный диалог для сохранения графических файлов.



0641.03.03;ЭПТ2.01;1

План

  • Теоретическая часть
    • Стиль меню
    • Проектирование главного меню окна
    • Стандартные диалоги
  • Пример разработки приложения

Цель занятия: научиться разрабатывать интерфейс на основе меню.

Приобретаемые навыки:

  • практика использования компонентов TMainMenu, TPopupMenu, для разработки графического интерфейса на основе меню;
  • практика использования компонентов для организации стандартных диалогов.

Список рекомендуемой литературы:

  • А.Я Архангельский. Программирование в Delphi 7 — М.: ООО «Бином-Пресс», 2005.
  • С. А. Орлов Технологии разработки программного обеспечения. — СПб.: Питер. 2002.
  • Э.А. Акчурин Человеко-машинное взаимодействие. Учебное пособие. — М.: «СОЛОН-ПРЕСС», 2008.
  • WWW.sunschool.math.rsu.ru

Используемые программы:

1. PascalABC

Система Pascal ABC предназначена для обучения программированию на языке Паскаль и ориентирована на студентов младших курсов. Содержит текстовый редактор для ввода программы, компилятор, набор управляющих компонентов, набор примеров с решением.

2. Redaktor.pas.

Программа для демонстрации примера разработки.



Вариант

Разработать приложение для Windows.

Условие (лабораторная работа № 9):

Вычислить стоимость междугороднего телефонного разговора (цена одной минуты определяется расстоянием до города, в котором находится абонент — является константой). Исходными данными для программы являются код города и продолжительность разговора.

1. Разработать главное меню для задачи лабораторной работы № 9. В пункте меню «Формат» менять шрифт и цвет компонентов ListBox или ComboBox. Структура меню:

Главное меню:

Город

Формат

Помощь

Выход

Владивосток

Шрифт

О программе

Киев

Цвет

Красноярск

Ярославль

2. Разработать контекстное меню для задачи лабораторной работы № 9.

Контекстное меню:

Шрифт (для метки)

Цвет (для формы)

3. В приложении использовать стандартные диалоги.



Вариант

Разработать приложение для Windows.

Условие (лабораторная работа №9):

В киоске продаются газета стоимостью 10 рубля, журнал стоимостью 50 рублей и книга стоимостью 140 рублей. Составить программу, которая дает возможность выбрать покупку по желанию (газета, журнал, книга), принимает деньги и выдает причитающуюся сдачу.

1. Разработать главное меню для задачи лабораторной работы № 9. В пункте меню «Формат» менять шрифт и цвет компонентов ListBox или ComboBox. Структура меню:

Главное меню:

Ассортимент

Формат

Помощь

Выход

Газета

Шрифт

О программе

Журнал

Цвет

Книгак

2. Разработать контекстное меню для задачи лабораторной работы № 9.

Контекстное меню:

Шрифт (для редактора)

Цвет (для метки)

3. В приложении использовать стандартные диалоги.



Вариант

Разработать приложение для Windows.

Условие (лабораторная работа №9):

Дан радиус R. Осуществить расчет по выбору: диаметра, длины окружности, площади круга, объема шара.

1. Разработать главное меню для задачи лабораторной работы № 9. В пункте меню «Формат» менять шрифт и цвет компонентов ListBox или ComboBox. Структура меню:

Главное меню:

Вид расчета

Формат

Помощь

Выход

Диаметр

Шрифт

О программе

Длина окружности

Цвет

Площадь круга

Объем шара

2. Разработать контекстное меню для задачи лабораторной работы №9.

Контекстное меню:

Шрифт (для метки)

Цвет (для формы)

3. В приложении использовать стандартные диалоги.



Вариант

Разработать приложение для Windows.

Условие (лабораторная работа №9):

Дано: сумма денег в рублях. Осуществить перевод денег в иностранную валюту: доллары, евро, франки, йены.

1$ = 34 руб.

1€ = 44 руб.

USD/CHF = 1,16 (доллар к Швейцарскому франку);

USD/YEN = 100 (доллар к Японскому Йену).

1. Разработать главное меню для задачи лабораторной работы № 9. В пункте меню «Формат» менять шрифт и цвет компонентов ListBox или ComboBox. Структура меню:

Главное меню:

Валюта

Формат

Помощь

Выход

Доллар

Шрифт

О программе

Евро

Цвет

Франк

Йень

2. Разработать контекстное меню для задачи лабораторной работы №9.

Контекстное меню:

Шрифт (для метки)

Цвет (для формы)

3. В разработке использовать стандартные диалоги.



Вариант

Разработать приложение для Windows.

Условие (лабораторная работа №9):

Осуществить по выбору перевод единиц измерения длины из метров в дюймы, ярды, версты, сажень.

1 дюйм = 2.54 см

1 ярд = 0.9144 м

1 верста = 500 сажень

1 косая сажень = 1.76 м

1. Разработать главное меню для задачи лабораторной работы № 9. В пункте меню «Формат» менять шрифт и цвет компонентов ListBox или ComboBox. Структура меню:

Главное меню:

Единицы измерения

Формат

Помощь

Выход

Дюйм

Шрифт

О программе

Ярд

Цвет

Сажень

Верста

2. Разработать контекстное меню для задачи лабораторной работы №9.

Контекстное меню:

Шрифт (для метки)

Цвет (для формы)

3. В приложении использовать стандартные диалоги.



Пример разработки приложения

Условие задачи

Создать текстовый редактор на основе компонента TextBox. В приложении предусмотреть главное и контекстное меню. Текстовый редактор должен осуществлять следующие функции: создавать новый файл, записывать созданный файл на диск, открывать существующий файл, изменять шрифт, выводить форму с информацией о программе. В приложении использовать контекстное меню для изменения шрифта текстового редактора.

Разработка главного меню

Разработка формы

1) Устанавливаем на форму компонент TextBox. Класс

TextBox
представляет простой текстовый редактор (компонент
TMemo
в Delphi).

Следующие свойства определены в классе

TextBox
:

§

свойство 
Lines о
пределяет динамический массив строк текстового редактора;

§

свойство
 ScrollBars о
пределяет, имеются ли у редактора полосы прокрутки.

§

свойство ReadOnly о
пределяет, является ли редактор доступным только для чтения.

2) Проектируем учебное меню вида:

Файл

Формат

Помощь

Выход

Создать

Шрифт

О программе

Открыть

Сохранить

3) На форму устанавливаем компонент MainMenu и формируем меню согласно условию.

Конструктор Меню.

Определяем функциональность главного меню формы

Выбирая щелчком мыши последовательно пункты меню, создаем обработчики событий OnClick.

1. Создать новый документ:

procedure MainMenu1___1___1OnClick;

begin

TextBox1.Clear; // Метод Clear очищает редактор

end;

2. Открыть существующий документ:

procedure MainMenu1___1___2OnClick;

begin

If OpenDialog1.Execute Then // Вызываем окно открытия файла

TextBox1.Lines.LoadFromFile(OpenDialog1.FileName);

end;

3. Сохранить документ на диске:

procedure MainMenu1___1___3OnClick;

begin

If SaveDialog1.Execute Then // Вызываем окно сохранения файла

TextBox1.Lines.SaveToFile(SaveDialog1.FileName);

end;

Форма приложения.

4. Обработчик для пункта меню «Формат/Шрифт».

Поскольку на панели элементов нет компонента FontDialog, создадим этот компонент динамически в процессе выполнения программы.

procedure MainMenu1___2___1OnClick;

Var FontDialog1 : FontDialog;

begin

FontDialog1 := FontDialog.Create; // Создаем новый объект

If FontDialog1.Execute Then // Вызываем диалоговое окно выбора шрифта

TextBox1.Font := FontDialog1.Font;

end;

5. Обработчик для пункта меню «Помощь/О программе».

В каждом приложении существует такой пункт меню для вывода окна с сообщением об используемой программе, ее разработчиках, версии и другом справочной информации.

Окно с информацией необходимо создать. Для вывода текстовой информации необходимо создать компонент для отображения текста. Это может быть, например, метка.

procedure MainMenu1___3___1OnClick;

Var F1: Form; TextL : TextLabel; // Описываем новые объекты

begin

F1 := Form.Create(400,300,150,100,'О программе'); //Создаем форму

F1.borderStyle := bsDialog; //Определяем стиль формы

//F1.Parent := Form1; //Определяем родителя созданной формы

F1.Show;

Textl := TextLabel.Create(10,10,'Учебная программа'); //Создаем метку

TextL.Parent := F1; //Определяем родителя созданной метки

end;

Справочное окно «О программе».

Определяем контекстное меню формы

Устанавливаем на форму компонент PopupMenu. Двойным щелчком мыши вызываем Конструктор Меню и определяем его пункты:

Конструктор контекстного Меню.

Функциональность контекстного меню определяют два обработчика события OnClick. Поскольку в главном меню есть вызов диалогового окна выбора шрифта, то можно вызвать этот обработчик внутри обработчика пункта контекстного меню.

procedure PopupMenu1___1OnClick;

begin

MainMenu1___2___1OnClick; // Вызов обработчика главного меню

end;

procedure PopupMenu1___2OnClick;

begin

If ColorDialog1.Execute Then //Вызов диалогового окна выбора цвета

TextBox1.Color := ColorDialog1.Color;

end;

Ознакомиться с работой программы можно, запустив программу Redaktor.pas.



Тестирование

Для создания главного меню приложения предназначен компонент (запишите большими латинскими буквами) —

- MAINMENU




Инструментальные панели — элемент графического интерфейса. Теоретическая часть

Интерфейс любой серьезной программы должен включать в себя полосу состояния, используемую для развернутых подсказок и выдачи различной информации пользователю.

Компонент StatusBar предназначен для создания панелей состояния, которые обычно располагаются в нижней части основной формы. Компонент может иметь несколько секций.

Следующие свойства определены в классе

StatusBar
:

Text
: string — о
пределяет текст в первой панели строки статуса.

Panels
[
i
: 
integer
]: 
StatusPanel — определяет набор панелей для строки статуса. Индексация производится с 1.

PanelsCount
: integer — о
пределяет количество панелей в строке статуса. Вначале создается одна панель. Свойство предназначено только для чтения.

Следующие методы определены в классе

StatusBar
:

Add
(text: string) — д
обавляет панель с заданным текстом к строке статуса.

Add
(
text
: 
string
; 
width
: 
integer
) — д
обавляет панель с заданным текстом и заданной ширины к строке статуса.

Класс

StatusPanel
представляет панель для строки статуса StatusBar.

Следующие свойства определены в классе

StatusPanel
:

Text
: 
string
 — о
пределяет текст панели.

Alignment
: 
AlignmentType
 — о
пределяет выравнивание текста на панели. Тип
AlignmentType
определен следующим образом:
AlignmentType=(taLeftJustify, taRightJustify, taCenter)
.

Width
: 
integer
 — о
пределяет ширину панели.

Bevel
: 
BevelType — задает стиль рамки панели.

Панели создаются только неявно методом

Add
класса
StatusBar.



Пример разработки приложения

На предыдущей лабораторной работе выполнена задача по разработке текстового редактора на основе компонента TextBox с главным и контекстным меню.

Текстовый редактор осуществляет следующие функции:

§ создает новый файл,

§ записывает созданный файл на диск,

§ открывает существующий файл,

§ изменяет шрифт,

§ изменяет цвет фона,

§ выводит форму с информацией о программе.

Перед нами стоит задача дополнить приложение панелью инструментов и строкой статуса. Дополнить приложение Всплывающими подсказками.

Выносим на панель инструментов пиктограммы команд, выполняемых с помощью пунктов главного меню: создать, открыть, шрифт, цвет.

Приложение «Редактор» с панелью инструментов и строкой статуса.

Компонент для создания панели инструментов ToolBar отсутствует в инспекторе объектов, поэтому его необходимо создать динамически в коде программы.

Добавляем в раздел описания новые объекты:

Var FontDialog1 : FontDialog;

Status : StatusBar; //Описание объекта для строки статуса

Tb : ToolBar; // Описание объекта для панели инструментов

В обработчик события, происходящим при создании формы, добавляем операторы создания панели и строки статуса:

Tb := ToolBar.Create;

Status:=StatusBar.create;

Свойству панели Flat присваиваем значение True, что определяет плоские кнопки в панели инструментов.

Кнопки на панель инструментов добавляем методом

AddButton
, у которого два параметра. Первый
— обработчик события, который должен вызываться при нажатии кнопки. Этот обработчик уже создан для соответствующего пункта меню.

Второй параметр — имя файла, содержащего рисунок на кнопке.

Для строки статуса панели создаются с помощью метода Add. Ознакомьтесь с обработчиком события Form1OnCreate. Код обработчика события:

procedure Form1OnCreate;

begin

FontDialog1 := FontDialog.Create;

Tb := ToolBar.Create; // Создаем панель инструментов

Tb.Flat := True; // Плоские кнопки на панели

Tb.AddButton(MainMenu1___1___1OnClick,'New');// Кнопка «Создать»

Tb.AddButton(MainMenu1___1___2OnClick,'Open');// Кнопка «Открыть»

Tb.AddButton(MainMenu1___1___3OnClick,'Save'); // Кнопка «Сохранить»

Tb.AddButton(MainMenu1___2___1OnClick,'FontDialog.bmp'); // Кнопка «Шрифт»

Tb.AddButton(PopupMenu1___2OnClick,'Color.bmp'); // Кнопка «Цвет»

Status:=StatusBar.create; // Создаем строку статуса

Status.caption:='Laboratory n.11'; // Определяем первую секцию строки статуса

Status.Add('Hello!!!'); // Определяем вторую секцию строки статуса

Status.Add('Section'); // Определяем третью секцию строки статуса

Status[3].Width:=100; // Ширина секции

Status[3].Bevel:=bvRaised; // Задаем стиль рамки

Status.Add; // Определяем четвертую секцию строки статуса

Status[4].Text:='Informatika'; // Текст четвертой секции

Status[4].Aligment:=taCenter; // Расположение текста по центру

end;

В строку состояния можно вывести информацию о текущем состоянии объектов и процессов. Создадим обработчик события, который будет осуществлять вывод координат мыши при щелчке по области текстового редактора. Событие OnMouseDown происходит при щелчке мыши на область текстового редактора. Параметрами обработчика являются X и Y — координаты мыши в этот момент времени. Координаты отображаем в четвертой панели строки статуса.

procedure TextBox1OnMouseDown(x,y,button: integer);

begin

Status[4].Text:='X:'+ IntToStr(x) + ' Y:' + IntToStr(Y);

end;

Приложение снабдим всплывающими подсказками. Всплывающая подсказка (Hint) — это небольшое окно, содержащее поясняющий текст, которое появляется на экране, когда пользователь размещает указатель мыши на элементе управления. Подсказка размещается ниже и правее курсора и отображается фиксированное время. Такую подсказку легко организовать с помощью свойства Hint компонента.

Познакомиться с работой приложения можно, вызвав программу Redaktor.pas.



0641.03.03;ЭПТ2.02;1

План

  • Теоретическая часть
    • Создание инструментальной панели на основе компонента ToolBar.
    • Создание строки статуса на основе компонента StatusBar.
  • Пример программы.

Цель занятия: изучить процесс создания инструментальных панелей и статус-строки в среде PascalABC.

Приобретаемые навыки: практика использования компонентов ToolBar и StatusBar для разработки графического интерфейса.

Список рекомендуемой литературы:

  • А.Я Архангельский. Программирование в Delphi 7 — М.: ООО «Бином-Пресс», 2005.
  • С. А. Орлов Технологии разработки программного обеспечения. — СПб.: Питер. 2002.
  • Э.А. Акчурин Человеко-машинное взаимодействие. Учебное пособие. — М.: «СОЛОН-ПРЕСС», 2008.
  • WWW.sunschool.math.rsu.ru

Используемые программы:

1. PascalABC

Система Pascal ABC предназначена для обучения программированию на языке Паскаль и ориентирована на студентов младших курсов. Содержит текстовый редактор для ввода программы, компилятор, набор управляющих компонентов, набор примеров с решением.

2. Redaktor.pas, Color.bmp, FontDialog.bmp (папка «общий пример»)

Программа для демонстрации примера разработки



Вариант

Условие исходной задачи (лабораторная работа № 9):

В киоске продаются газета стоимостью 10 рубля, журнал стоимостью 50 рублей и книга стоимостью 140 рублей. Составить программу, которая дает возможность выбрать покупку по желанию (газета, журнал, книга), принимает деньги и выдает причитающуюся сдачу.

1. К приложению, разработанному на предыдущей лабораторной работе, добавить панель инструментов, позволяющую обратиться ко всем пунктам главного меню.

2. Создайте панель статуса, в которой отобразите Вашу фамилию, а также информацию о текущем положении курсора.

3. Снабдите компоненты приложения всплывающими подсказками.



Вариант

Условие исходной задачи (лабораторная работа № 9):

Вычислить стоимость междугороднего телефонного разговора (цена одной минуты определяется расстоянием до города, в котором находится абонент — является константой). Исходными данными для программы являются код города и продолжительность разговора.

1. К приложению, разработанному на предыдущей лабораторной работе, добавьте панель инструментов, позволяющую: очистить компонент ListBox, загрузить новое содержание в компонент ListBox, сохранить содержимое компонента ListBox. обратиться к пунктам меню «Формат», «Выход».

2. Создайте панель статуса, в которой отобразите Вашу фамилию, а также информацию о текущем положении курсора.

3. Снабдите компоненты приложения всплывающими подсказками.



Вариант

Условие исходной задачи (лабораторная работа № 9):

Дан радиус R. Осуществить расчет по выбору: диаметра, длины окружности, площади круга, объема шара.

1. К приложению, разработанному на предыдущей лабораторной работе, добавить панель инструментов, позволяющую обратиться ко всем пунктам главного меню.

2. Создайте панель статуса, в которой отобразите информацию о текущем положении курсора.

3. Снабдите компоненты приложения всплывающими подсказками.



Вариант

Условие исходной задачи (лабораторная работа № 9):

Дано: сумма денег в рублях. Осуществить перевод денег в иностранную валюту: доллары, евро, франки, йены.

1$ = 34 руб.

1€ = 44 руб.

USD/CHF = 1,16 (доллар к Швейцарскому франку);

USD/YEN = 100 (доллар к Японскому Йену).

1. К приложению, разработанному на предыдущей лабораторной работе, добавить панель инструментов, позволяющую обратиться ко всем пунктам главного меню.

2. Создайте панель статуса, в которой отобразите информацию о текущем положении курсора.

3. Снабдите компоненты приложения всплывающими подсказками.



Вариант

Условие исходной задачи (лабораторная работа № 9):

Осуществить по выбору перевод единиц измерения длины из метров в дюймы, ярды, версты, сажень.

1 дюйм = 2.54 см

1 ярд = 0.9144 м

1 верста = 500 сажень

1 косая сажень = 1.76 м

1. К приложению, разработанному на предыдущей лабораторной работе, добавить панель инструментов, позволяющую обратиться ко всем пунктам главного меню.

2. Создайте панель статуса, в которой отобразите Вашу фамилию, а также информацию о текущем положении курсора.

3. Снабдите компоненты приложения всплывающими подсказками.



Тестирование

Запишите название компонента, предназначенного для создания инструментальной панели быстрого доступа (запишите строчными буквами).

- toolbar