- •Методическое пособие для самостоятельных работ «Основы интегрированной среды программирования 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 "Электрические системы и комплексы транспортных средств",
Глава 5. Реализация алгоритмов решаемых задач на Delphi
5.1. Традиционный подход реализации алгоритмов на Delphi
До сих пор рассматривались генерируемые Delphi процедуры. При решении больших задач возникает необходимость написания процедур и функций, реализующих алгоритмы разработчика. Напомним, что использование в программах процедур и функций целесообразно в двух случаях:
Имеются алгоритмы, которые необходимо выполнять многократно, но с разными исходными данными.
Объем программы большой и процедуры и функции используются как средство структурирования программы: каждая процедура (функция) решает какую-то подзадачу, но все они вместе обеспечивают решение всей задачи. Рекомендация: объем одной процедуры (функции) не более двух-трех экранов или одной страницы текста.
Допустим, что состав необходимых для решения задачи процедур (функций) определен. Возможно, что они использовались уже при решении задачи в среде Borland Pascal и возникла необходимость разработать новую реализацию в Delphi. Как их включить в Delphi и использовать? В Delphi реализован алгоритмический язык Object Pascal, он отличается несущественно от традиционного. Поэтому процедуры (функции), написанные для Borland Pascal, могут быть использованы и здесь. Надо иметь в виду, что в них не должно быть традиционных для операционной системы MS DOS операторов ввода/вывода. Ввод/вывод необходимо обеспечить средствами Delphi (через различные диалоговые окна).
Необходимые процедуры (функции) должны быть оформлены в виде модулей (Unit). Структура модулей в Delphi расширена по сравнению с Borland Pascal, но мы не будем на этом останавливаться. В Delphi каждой форме соответствует свой модуль. Но модуль может существовать и без формы. Для создания нового модуля необходимо выбрать из меню Delphi: File – New – Unit. В ответ откроется пустой модуль, куда по традиционным правилам можно записать все необходимое.
unit Unit3;
interface
{Место для заголовков процедур и функций}
implementation
{Место для реализаций процедур и функций}
end.
Если модули в виде файлов с расширением *.pas уже имеются, то используется другой способ их подключения: выбрать из меню Delphi: View – Project Manager. Появится знакомое нам окно. В нем выбирайте Add: откроется диалоговое окно, в котором выбирается подключаемый модуль. Допускается подключение модулей как в исходном (расширение *.pas), так и в оттранслированном виде (расширение *.tpu).
Вызов процедур и функций из модуля выполняется как обычно, не забудьте только включить в нужном месте оператор Uses < имя модуля >;
5.2. Объектно-ориентированный подход
При объектно-ориентированном подходе в интерфейсном разделе модуля задаются описания классов, в разделе реализации – тексты методов. Однако средства объектно-ориентированного программирования (ООП) получили в Delphi дальнейшее развитие по сравнению c Borland Pascal 7.0, и поэтому мы остановимся на них подробнее. В Delphi имеется два подхода к ООП:
«классический», заимствованный из Borland Pascal 7.0;
подход Delphi.
При классическом подходе для описания объектов используется ключевое слово Object. Создание и использование переменных типа объект ничем не отличается от аналогичных действий в Borland Pascal 7.0.
В Delphi разработан новый подход, похожий на применяемый в языке С++. Введены понятия “класс” и “объект”. Объект – это конкретный предмет в окружающем нас мире. Например, прямоугольный треугольник ABC с катетами 4 и 5. Класс – это совокупность объектов с одинаковыми свойствами (задаются переменными) и одинаковым поведением (поведение задается методами). Например, класс “прямоугольные треугольники”. Необходимо отметить, что и в теоретических работах по ООП используется, как правило, такая терминология. Важно запомнить разное содержание понятия “объект” в этих двух подходах, что показано в табл. 5.1.
Таблица 5.1
Borland Pascal |
Delphi |
Object |
Class |
Экземпляр объекта, переменная типа объект |
Объект |
Кроме этой, терминологической, разницы имеется и существенная разница в реализации, в зависимости от того, объявлен ли Class или Object. Рассмотрим это на примерах.
Пример 1. Классический подход.
Пусть наше приложение состоит из одной формы и двух модулей: первый модуль соответствует форме, а второй содержит объявление объекта. Форма приведена на рис. 5.1.
Рис. 5.1. Окно приложения
Реализация модуля формы. Требуется дополнительное объявление
Var
MyObj :Calc6;
procedure TForm1.Button1Click(Sender: TObject);
Var
k,l :byte;
sig :integer;
begin