
- •Часть 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. Объектно-ориентированное программирование
13.4. Построение строки состояния
Система Delphi содержит специальный компонент StatusBar, основанный на специальном управляющем элементе системы Windows. Этот компонент может быть использован почти как панель, когда значением его свойства SimplePanel является True. В этом случае вы можете использовать свойство SimpleText, чтобы вывести некоторый текст. Этот компонент позволяет вам определить несколько подпанелей с помощью редактора свойства Panels. Каждая подпанель имеет свои собственные графические атрибуты, настраиваемые с помощью редактора. Другой характеристикой компонента строки состояния является специальная область, которая добавляется в нижний правый угол линейки и предназначена для изменения размера самой формы.
Строка состояния используется для многих целей. Наиболее часто ее применяют для вывода на экран информации об элементе меню, который в настоящее время выбран пользователем. При этом нужно сделать два шага. Сначала ввести строку как свойство Hint каждого элемента меню. Затем записать некоторый код для обработки события OnHint приложения. Вам нужно добавить вручную новый метод в форму и затем присвоить его свойству OnHint объекта Application при запуске:
procedure TForm1.Form1Create(Sender:TObject);
begin
Application.OnHint:= ShowHint;
End;
В интерфейсной части кода формы вы можете добавить следующее определение:
procedure TForm1.ShowHint(Sender: Object);
Эта процедура копирует текущее значение свойства Hint приложения, которое временно содержит копию всплывающей подсказки выбранного элемента, в строку состояния :
procedure TForm1.ShowHint(Sender:TObject);
begin
StatusBar1.Panels[0].Text:=Application.Hint;
end;
Задание № 3
Сконструировать строку состояния, в которую вывести подсказки для всех команд всплывающего меню формы, построенной в предыдущих заданиях.
14. ПРИЛОЖЕНИЕ С НЕСКОЛЬКИМИ ФОРМАМИ И МНОГОСТРАНИЧНЫЕ ФОРМЫ
Обычно приложения имеют основное окно, несколько плавающих инструментальных панелей (или палитр) и диалоговых панелей, которые могут вызываться с помощью команд меню или командных кнопок.
Диалоговые панели в Delphi основаны на формах. С диалоговой панелью пользователь обычно связывает понятие модального окна. Модальное окно – это такое окно, которое получает фокус и должно быть закрыто прежде, чем пользователь может перейти обратно к основному окну. Это верно для панелей сообщения и диалоговых панелей. В системе Delphi можно также иметь немодальные диалоговые панели и модальные формы. Мы должны учитывать два момента:
рамки формы и пользовательский интерфейс определяют, выглядит ли эта форма как диалоговая панель;
использование двух функций – Show и ShowModal для вывода на экран второй формы определяет поведение последней (немодальная или модальная).
Если вы используете функцию Show, вторая форма будет выведена на экран как немодальная. Код просто выводит форму на экран, а не создает ее. Форма создается файлом проекта. Первая созданная форма становится основной формой приложения. Когда модальная форма создается и выполняется с помощью функции ShowModal, она остается активной до тех пор пока вы не закроете ее. Функция ShowModal не возвращает значение до тех пор, пока форма не закрыта. В это время основная форма остается недоступной. Как только модальная форма будет закрыта, функция ShowModal завершает работу, а код удаляет объект из памяти.