- •Методическое пособие для самостоятельных работ «Основы интегрированной среды программирования delphi6»
- •6.100301 "Судовождение",
- •6.100302 "Эксплуатация судовых энергетических установок"
- •6.092201 "Электрические системы и комплексы транспортных средств",
- •Введение
- •Глава 1. Интегрированная среда Delphi. Принципы работы
- •1.1. Интегрированная среда Delphi
- •1.2. Принципы визуального программирования
- •Val(Edit1.Text,k1,sign);
- •Val(Edit2.Text,k2,sign);
- •Val(MaskEdit1.Text,r1,sig);
- •Val(МaskEdit2.Text,r2,sig);
- •1.3. Событийно-управляемые программы
- •1.4. Составление программ обработки массивов
- •I :integer;
- •I, j :integer;
- •1.5. Вывод на печать
- •Глава 2. Общие свойства компонентов
- •2.1. Иерархия компонентов
- •2.2. Имена и собственники компонентов
- •2.3. Родительские и дочерние компоненты
- •2.4. Положение, размеры и оформление компонентов
- •2.5.Указатели мыши
- •2.3. Окно редактора с готовым изображением указателя
- •2.6. Реакция на события от мыши и клавиатуры
- •2.6.1. События от мыши
- •2.6.2. События от клавиатуры
- •2.6.3. Клавиатура в ms-dos и Windows
- •2.6.4. Фокус ввода
- •2.7. Механизм действий Action
- •2.8. Иинтерфейс Drag&Drop
- •2.9. Иинтерфейс Drag&Dock
- •2.10. Поддержка справочной службы
- •2.11. Поддержка Сом
- •2.12. Свойства разного назначения
- •Глава 3. Использование компонентов общего назначения
- •3.1. Компоненты страницы Standard
- •3.1.1. TFrame - рама и шаблоны компонентов
- •6) Окно регистрации рамы в палитре компонентов
- •3.1.2. Создание шаблонов без рам
- •3.1.3. TMainMenu - главное меню формы (программы)
- •3.1.4. TPopupMenu - вспомогательное (локальное) меню
- •3.1.5. TLabel - метка для отображения текста
- •3.1.6. TEdit - ввод и отображение строки
- •3.1.7. TMemo - ввод и отображение текста
- •3.1.8. TButton - кнопка
- •3.1.9. TCheckBox - независимый переключатель
- •3.11. Компонент tCheckBox - независимый переключатель
- •3.1.10. TRadioButton - зависимые переключатели
- •3.1.11. TListBox - список выбора
- •3.1.12. TComboBox – комбинированный или раскрывающийся список выбора
- •3.1.13. TScrollBar - управление значением величины
- •3.1.14. TGroupBox - панель группирования
- •3.1.15. TRadioGroup - группа зависимых переключателей
- •3.1.16. TPanel - панель
- •3.1.17. TActionList - механизм действий
- •3.2. Компоненты страницы Аdditional
- •3.2.1. TBitBtn - кнопка с изображением
- •3.2.2. TSpeedButton - кнопка для инструментальных панелей
- •3.2.3. TMaskEdit - специальный редактор
- •3.2.4. TStringGrid - таблица строк
- •3.2.5. TDrawGrid - произвольная таблица
- •3.2.6. TImage - отображение картинок
- •3.2.7. TShape - стандартная фигура
- •3.2.8. TBevel - кромка
- •3.2.9. TScrollBox - панель с прокруткой
- •3.2.10. TСheckListBox - группа независимых переключателей
- •3.2.11. TSplitter - компонент для изменения размеров
- •3.2.12. TStaticText - метка для отображения текста
- •3.2.13. TControlBar - инструментальная панель
- •3.2.14. TApplicationEvents - обработчик сообщений Windows
- •3.2.15. TValueListEditor - специализированный редактор строк
- •3.2.16. TLabelEdit - однострочный редактор с меткой
- •3.2.17. TColorBox - список выбора цвета
- •3.2.18. TChart - построитель графиков
- •3.2.19. TActionManager - менеджер действий
- •3.2.20. TActionMainMenuBar - полоса меню для действий
- •3.2.21. TActionTollBar - полоса кнопок для действий
- •3.2.22. TCustomizeDIg - диалог настройки интерфейса
- •Глава 4. Многодокументный и однодокументный интерфейсы (mdi и sdi)
- •4.1. Mdi и sdi: сравнение
- •4.2. Разработка mdi—приложений
- •4.2.1. Разработка главного и информационного окон
- •4.2.2. Использование стандартных диалоговых окон
- •If OpenDialog1.Execute then
- •4.2.3. Разработка диалогового окна
- •Var dlg6:tokRightDlg;
- •X1,x2,x3:String;
- •If b1 or b2 then
- •4.2.4. Управление окнами
- •I:integer;
- •I:integer;
- •4.2.5. Работа с меню
- •Var tf5:tForm2;
- •4.3. Разработка sdi–приложения
- •4.3.1. Простое sdi–приложение
- •I,j :byte;
- •I,j :byte;
- •I,j :byte;
- •4.3.2. Управление окнами в sdi–приложениях
- •I :byte;
- •Var I :byte; ptr6 :tForm2;
- •I :byte;
- •Глава 5. Реализация алгоритмов решаемых задач на Delphi
- •5.1. Традиционный подход реализации алгоритмов на Delphi
- •5.2. Объектно-ориентированный подход
- •Val(Edit1.Text,k,sig);
- •Val(Edit2.Text,l,sig);
- •I,j :byte;
- •I,j :integer;
- •Inherited Create (Ni,Nj);
- •Val(Edit1.Text, p, sig1);
- •Val(Edit2.Text, q, sig2);
- •Val(Edit3.Text, r, sig3);
- •Vas :real;
- •Val(Edit4.Text,n,sig);
- •Глава 6. Тестирование и отладка приложений
- •6.1. Виды ошибок
- •6.2. Отладочные средства Delphi
- •6.3. Составление тестов
- •Глава 7. Исключительные ситуации
- •7.1. Обработка исключительных ситуаций
- •I, j, k : integer;
- •I:integer;
- •I, j, k : integer;
- •7.2. Обработка определенных исключительных ситуаций
- •Var I,j,k :shortint; p,q :real;
- •Заключение
- •Литература
- •Методическое пособие для самостоятельных работ «Основы интегрированной среды программирования delphi6»
- •6.100301 "Судовождение",
- •6.100302 "Эксплуатация судовых энергетических установок"
- •6.092201 "Электрические системы и комплексы транспортных средств",
Глава 4. Многодокументный и однодокументный интерфейсы (mdi и sdi)
4.1. Mdi и sdi: сравнение
При создании больших и сложных приложений трудно разместить все необходимые поля ввода/вывода и элементы управления на одном окне. Кроме того, всегда необходимо обеспечить удобство использования программы, обозримость и легкость понимания ее входных и выходных форм. При разработке программных комплексов, предназначенных для широкой эксплуатации, целесообразно, чтобы формы ввода/вывода по возможности совпадали по расположению информации с документами, с которыми работали при традиционной технологии, до перехода на ЭВМ. В Delphi можно создать приложения с многими окнами. В зависимости от того, как организовано управление окнами, различают две разновидности приложений с многими окнами:
многодокументный интерфейс – multiple document interface (MDI),
однодокументный интерфейс – single document interface (SDI).
Часто их называют соответственно MDI– и SDI–приложениями.
В MDI–приложениях имеется одно главное окно с меню, другие окна являются подчиненными (их называют еще дочерними) и ими можно управлять из главного окна. Закрытие главного окна означает завершение работы программы. Подчиненные окна не имеют собственного меню, но меню главного окна может видоизменяться в зависимости от того, какое окно в данный момент активно. Рекомендуют разрабатывать MDI–приложения таким образом, чтобы в главном окне было только меню, а все остальные действия выполнялись в подчиненных окнах. Примерами MDI–приложений являются Word, Windows 3.1.
Название SDI–приложения может ввести в заблуждение: кажется, что там имеется только одно окно. На самом деле там тоже допускается большое число окон, но нет главного окна, из которого управлялись бы все остальные. Все окна независимы, они могут содержать и собственные меню. Все действия над окнами придется запрограммировать самому. Примером SDI–приложения является Delphi.
4.2. Разработка mdi—приложений
Приступим к разработке MDI–приложения, состоящего из главного окна, диалогового окна, информационного окна и окна ввода данных (окно вывода данных разрабатывается аналогично). Запустим Delphi, откроется пустая форма. Дадим ей имя и изменим в инспекторе объектов значение свойства FormStyle: выберем из выпадающего списка fsMDIForm – это означает, что созданная форма является главным окном будущего приложения. Напомним, что только одна форма приложения может быть главной.
4.2.1. Разработка главного и информационного окон
Главное окно содержит только меню, которое будет изменяться в зависимости от того, какое дочернее окно открыто. Принята следующая структура меню:
Самым левым является пункт File, включающий операции с файлами; самым нижним его подпунктом должен быть выход из программы (Exit, Quit).
Самым правым является пункт Help (контекстная подсказка), включающий подпункт About (информация о программе).
File |
Help |
Quit Alt+X |
About |
Ограничимся пока приведенными выше пунктами меню.
На этой стадии разработки приложения целесообразно сохранить созданное. Это делается, как всегда, через подпункты меню File, лучше всего через Save All. В Delphi каждому приложению соответствует так называемый проект, который содержит формы и программные модули. При их сохранении требуется дать имена проекту и каждому программному модулю и эти имена не должны совпадать. По умолчанию проекту присваивается имя Project1, а модулям Unit1, Unit2, . . . Под этими именами не следует сохранять свои разработки. Используем имена Okna для проекта и Okno1, Okno2, . . . для модулей.
Приступим к созданию информационного окна (окна About). В Delphi имеется галерея, содержащая заготовки для создания разных форм и целых приложений. Для работы с галереей в меню Delphi выберем пункт Сервис (Tools), затем подпункт База (Repository). В левом столбце появившейся таблицы выберем Forms. В результате в таблице заполняется правый столбец, там активизируем AboutBox, щелкаем курсором мыши в квадратике левее Новая форма (New Form) и закроем это окно нажатием OK. После этого в меню Delphi в пункте File выберем подпункт New Form – на экране появится заготовка окна About и инспектор объектов тоже будет соответствовать объекту AboutBox. Активизируем по очереди имеющиеся на нем пункты (Produсt Name, Version и т.д.) и меняем значения их свойств Caption, чтобы получить в окне требуемый текст. Все эти пункты относятся к типу Label, поэтому в качестве их значений можно использовать произвольный текст, в том числе и на русском языке. Можно менять и иконку, для этого активизируем ее, активизируем свойство Picture и с помощью диалогового окна выберем новую иконку, можно нарисовать и собственную.
После всего этого имеем две формы (главную и About) и два программных модуля: в Delphi каждой форме соответствует свой модуль. Для завершения создания информационного окна осталось обеспечить его открытие из меню главного окна и закрытие. Это очень просто. Переходим в главное окно, делаем двойной щелчок на пункте его меню About и в открывшуюся процедуру пишем одну строку:
procedure TForm1.About1Click(Sender: TObject);
begin
AboutBox.Show;
end;
После этого переходим к окну About, делаем двойной щелчок на кнопке ОК и в предложенное место пишем
procedure TAboutBox.OKButtonClick(Sender: TObject);
begin
Close;
end;
Переходим от окна About к его программному модулю и сохраним его под именем Okno2. Осталось сделать последнее. Модули разных форм независимы, но мы в модуле Okno1 ссылаемся на объект AboutBox, который принадлежит другому модулю. Откроем модуль Okno1, найдем в нем раздел описаний, точнее, оператор Uses и в перечень уже имеющихся в нем модулей добавим Okno2. После этого можно запустить наше приложение и убедиться, что два пункта меню работают.(рис.4.1.)
По мере возрастания сложности приложения путем добавления новых форм и модулей трудно следить за ними. В этом помогает менеджер проекта. Для его открытия необходимо открыть меню View и выбрать пункт Project Manager. Для перехода к нужным форме или модулю надо просто щелкать на названии.
Рис .4.1. Пример приложения «Разработка главного и информационного окон»