Демо (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