- •Часть 2
- •Оглавление
- •1. Структурный подход к программированию
- •1.1. Цели структурного программирования
- •1.2. Основные принципы структурного подхода
- •1.3. Спецификация программ
- •1.4. Метод пошаговой детализации
- •2. Предыстория объектно-ориентированного программирования
- •2.1. Введение в объектно-ориентированное программирование
- •2.2. Тип Объекты
- •2.3. Основные понятия ооп. Инкапсуляция. Наследование
- •X, y : integer; {координаты позиции}
- •XX,yy:array [1..1000] of integer;
- •2.4. Совместимость объектных типов по присваиванию
- •2.5. Описание типа-потомка
- •2.6. Полиморфизм
- •2.7. Виртуальные методы. Конструкторы и деструкторы
- •2.7.1. Правила работы с виртуальными методами
- •3. Типы данных и операторы языка object pascal в delphi
- •3.1. Предопределенные типы данных
- •3.1.1 Вещественные типы
- •3.1.2. Длинные строки
- •3.2. Структурированные типы
- •3.2.1. Множества
- •Var MySet: set of 'a'..'z';
- •3.2.2. Массивы
- •Var FlexArray: array of Real;
- •Var Ints: array of array of Integer;
- •3.2.3. Записи
- •Var Record1,Record2:tDateRec;
- •3.2.4. Указатели
- •I: Integer;
- •V1,v2,v3,v4,v5:Variant;
- •I:Integer;
- •3.3. Типы данных, специфичные для Windows
- •3.3.1. Приведение и преобразование типов
- •3.4. Операторы языка Паскаль
- •I:Integer;
- •I:Integer;
- •3.4.1. Элементы управления редактированием
- •3.5. Процедуры и функции библиотеки vcl
- •4. Реализация ооп на языке pascal
- •V: Real;
- •Наследование
- •Virtual;
- •Конструкторы и деструкторы
- •Перекрытие методов
- •5. Программирование в среде delphi
- •5.1. Основные элементы
- •5.2. Реализация объектно-ориентированного программирования
- •5.3. Разработка интерфейса приложения
- •5.3.1. Создание простейшего Windows-приложения
- •5.3.2. Создание Windows-приложения с метками и кнопками
- •Объект Свойство Значение
- •6.1.3. Меню Edit
- •6.1.4. Меню Search
- •6.1.5. Меню View
- •6.1.6. Меню Run
- •6.1.7. Меню Component
- •6.1.8. Меню Tools
- •6.1.9. Полоска кнопок быстрого доступа SpeedBar
- •6.1.10. Локальные меню. SpeedMenu
- •6.2. Работа с формами
- •6.2.1. Палитра компонентов
- •6.2.2. Object Inspector
- •6.2.3. Написание кода
- •6.2.4. Компиляция проекта
- •6.2.5. Интегрированный отладчик
- •6.2.6. Файлы, создаваемые системой
- •7. Структура delphi-программ
- •7.1. Разработка проекта Dialog
- •7.2. Процедуры вызова диалоговых окон
- •7.3. Преобразования типов
- •Var factW,optW,Rost,Delta:integer;
- •Var factW,optW,Rost,Delta:real;
- •7.4. Простейшие компоненты
- •7.4.1. Группы радиокнопок - компоненты RadioGroup, RadioButton, GroupBox
- •7.4.2. Компоненты выбора из списков - ListBox, ComboBox
- •7.4.3. Многострочные окна редактирования Memo и Richedi
- •7.4.4. Графические объекты
- •If OpenDialog1.Execute
- •Image1.Picture.LoadFromFile
- •7.4.5. Канва и пиксели
- •X, y :real; // координаты функции
- •7.4.6. Воспроизведение немых видео клипов – компонент Animate
- •7.4.7. Установка и настройка приложения: работа с файлами *.Ini
- •IniFile.Free;
- •Упражнения
- •8. Репозиторий объектов и эксперты
- •8.1. Страницы репозитория объектов
- •8.1.1. Страница New
- •8.1.2. Страница Forms
- •8.1.3. Страница Dialogs
- •8.1.4. Страница Data Modules
- •8.1.5. Страница Projects
- •8.2. Эксперты Delphi
- •8.2.1. Application Expert
- •8.2.2. Dialog Box Expert
- •9. Классы и модули
- •9.1. Классы и сокрытие информации
- •9.2. Классы и модули
- •9.3. Модули и область видимости
- •9.4. Модули и программы
- •9.5. Информация о типе на этапе выполнения
- •If MyAnimal is Dog then …
- •If MyAnimal is Dog
- •If MyAnimal is Dog then
- •10. Использование компонентов
- •10.1. Буксировка из одного компонента в другой
- •10.2. Обработка исключений
- •10.3. Восприятие ввода для пользователя
- •Val( Edit1.Text,Number,Code);
- •Val((Sender as tEdit).Text,Number,Code);
- •11.2. Различные роли элементов меню
- •11.3. Редактирование меню с помощью Menu Designer
- •If OpenDialog1.Execute
- •If SaveDialog1.Execute
- •Procedure tForm1.ViewEdit1Click(Sender:tObject); begin
- •If Panel1.Visible
- •If Buttons1.Enabled
- •12. Получение «ввода от мыши» и рисование в форме
- •12.1. События, связанные с мышью
- •12.2. Рисование в форме
- •If ssShift in Shift
- •If Circle then Canvas.Ellipse(Center.X-Radius.X,Center.Y-
- •Else Canvas.Rectangle(Center.X-Radius.X,Center.Y-
- •12.3. Черчение и рисование в системе Windows
- •13. Инструментальная линейка и строка состояния
- •13.1. Построение инструментальной линейки
- •Procedure tForm1.SpeedButton1Click(Sender:tObject); begin
- •If SpeedButton1.Down
- •13.2. Добавление всплывающих подсказок в линейку
- •13.3. Комбинированный список в инструментальной линейке
- •13.4. Построение строки состояния
- •14.1. Добавление второй формы в программу
- •14.2. Создание диалоговой панели
- •Задание № 1
- •Procedure tForn1.BitBtnClick(Sender:tObject); begin PageControl1.SelectNextPage(true);
- •Do ListBox1.Items.Add(PageControl1.Page[I].Caption);
- •14.3.1. Блокнот с набором ярлыков
- •If FontDialog1.Execute
- •15.2. Жизненный цикл программного средства
- •15.3. Понятие качества программного средства
- •15.4. Обеспечение надежности основной мотив разработки программных средств
- •15.4.1. Методы борьбы со сложностью
- •15.4.2. Обеспечение точности перевода
- •15.4.3. Преодоление барьера между пользователем и разработчиком
- •15.4.4. Контроль принимаемых решений
- •Литература
- •Часть 2. Объектно-ориентированное программирование
11.2. Различные роли элементов меню
Существует три основных типа элементов меню:
Команды – элементы меню, которые используются для выдачи команды и выполнения действия. Визуально они никак не выделяются.
Установщики состояния – элементы меню, используемые для переключения опции в положения включено–выключено и изменения состояния какого–либо элемента. Если эти команды имеют два состояния, то в активном положении слева от них обычно стоит галочка. В этом случае выбор команды изменяет состояние на противоположное.
Элементы вызова диалога – элементы меню, которые вызывают диалоговую панель. Реальное различие между этими и другими элементами меню состоит в следующем: с помощью этих элементов пользователь должен получить возможность исследовать вероятные действия соответствующей диалоговой панели. Такие команды должны иметь визуальный ключ в виде трех точек после текста.
11.3. Редактирование меню с помощью Menu Designer
Система Delphi включает специальный редактор для меню - Menu Designer. Чтобы вызвать этот инструмент, поместите компонент меню в форму и щелкните по нему (само меню автоматически разместится правильно – под заголовком формы). Menu Designer позволяет создавать меню путем простого написания текста команд, перемещать элементы или выпадающие меню с помощью буксировки и легко устанавливать свойства элементов. Для создания выпадающего меню второго уровня нужно выбрать команду Create submenu в SpeedMenu инструмента (локальном меню, которое вызывается правой кнопкой мыши).
Горячие клавиши меню
Общее свойство элементов меню – наличие подчеркнутой буквы. Эту букву можно использовать для выбора меню с помощью клавиатуры. При одновременном нажатии клавиши Alt и клавиши с буквой на экране появляется соответствующее выпадающее меню. Чтобы определить подчеркнутую клавишу, просто поместите перед ней символ амперсанта (&), например &File. Элементам меню можно назначить горячие клавиши. Для этого нужно указать значение для свойства ShortCut, выбрав одну из стандартных комбинаций.
Задание № 1
С помощью Menu Designer добавьте в форму полоску меню. Эта полоска имеет три выпадающих меню: меню File c единственной командой Exit; меню Options с командами Font, Color, Left, Center, Hight (между Color и Left установите разделитель, для Left, Center, Hight назначьте горячие клавиши); меню Help с элементом About. Чтобы поместить разделитель, вместо текста команды вставьте просто дефис.
В форму поместите компонент RichEdit и две пиктограммы диалогов FontDialog и ColorDialog.
Для отклика на команды меню вы должны определить метод для события OnClick каждого элемента меню. Код метода TForm1.Font1Click:
procedure TForm1.Font1Click(Sender:TObject);
begin
FontDialog1.Font:= RichEdit1.Font;
FontDialog1.Execute;
RichEdit1.Font:= FontDialog1.Font;
end;
Код метода TForm1.Color1Click аналогичен предыдущему.
Код метода TForm1.Left1Click :
procedure TForm1.Left1Click(Sender:TObject);
begin
RichEdit1.Paragraph.Alignment:= taLeftJustify;
Left1.Checked:= True;
Center1.Checked:= False;
Right1Checked:= False;
end;
Чтобы поставить галочку в ряде выбираемых опций, установите свойство Checked элемента меню в окне Object Inspector в True.
Код методов для элементов Center и Right аналогичен предыдущему.
11.4. Изменение элементов меню
Для модификации элемента меню чаще всего используются три свойства. Свойство Checked используется, чтобы добавить или удалить галочку рядом с элементом меню. С помощью свойства Enabled элемент меню можно сделать неактивным, после чего пользователь не сможет его выбрать. Последнее свойство этой группы Caption представляет текст элемента меню. Изменяя текст элемента меню, вы указываете пользователю, что программа перешла в другое состояние.
Задание № 2
На форме расположить две панели, две кнопки и компонент RichEdit. Первая панель содержит два поля редактирования, а вторая два чекбокса. Также необходимо построить выпадающее меню File, Buttons, View, Pulldowns. Команды меню File – Open , SaveAs. Команды меню Buttons содержат изменяемый текст (с ‘Enable First’ на ‘Disable First’). Команды меню View – Edit Boxes, Check Boxes. Команды Pulldowns – Remove File, Disable Buttons, Disable View. Поместите в форму пиктограммы необходимых диалогов.
Код методов, которые загружают и сохраняют файлы:
procedure TForm1.Open1Click(Sender:TObject);
begin
