- •Методическое пособие для самостоятельных работ «Основы интегрированной среды программирования 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 "Электрические системы и комплексы транспортных средств",
3.2.11. TSplitter - компонент для изменения размеров
Компонент TSplitter предназначен для ручного (с помощью мыши) управления размерами контейнеров TPanel1, TGroupBox или подобных им во время прогона программы. Визуально он представляет собой небольшую вертикальную или горизонтальную полосу, располагающуюся между двумя соседними контейнерами или на “свободной” стороне одного их них.
Непременным условием правильной работы компонента является выравнивание контейнера (контейнеров), размерами которого (которых) он управляет, вдоль одной из сторон окна или охватывающего контейнера. Для примера на рис. 3.29 показаны две панели, разделенные компонентом TSpiitter. Нижняя панель имеет Align = alBottom, верхняя в этом случае может иметь выравнивание alBottom или alciient. Между ними помещен TSplitter с выравниванием alBottom.
Свойства компонента:
Свойство |
Описание |
property Beveled: Boolean; |
Управляет трехмерным изображением компонента. Если False, компонент виден как узкая полоска фона между разделяемыми им компонентами него |
NaturalNumber = 1..High(Integer) ; |
Содержит минимальный размер любого из компонентов, которые разделяет TSplitter. |
property MinSize: NaturalNumber; |
Если выравнивание alLeft или alRight - минимальная ширина компонента слева и справа от TSplitter, если alTop или alBottom -минимальная высота компонента выше или ниже отнего |
Для компонента определено событие onMoved, которое вызывается при любом перемещении компонента мышью.
Рис. 3.29. Пример использования компоненты TSplitter
3.2.12. TStaticText - метка для отображения текста
Этот компонент во всем подобен своему “двоюродному брату” TLabel за исключением двух обстоятельств. Во-первых, он порожден от TwinControl и, таким образом, имеет Windows-окно. Это обстоятельство может быть необходимым условием правильного взаимодействия со связанным свойством FocusControl управляющим элементом, если это внешний для Delphi элемент ActiveX. Во-вторых, в его свойстве
type TStaticBorderStyle = (sbsNone, sbsSingle, sbsSunken) ;
property BorderStyle: TStaticBorderStyle;
добавлено значение sbsSunken, которое создает иллюзию вдавленности компонента. Все остальные свойства и методы компонента совпадают со свойствами и методами TLabel.
3.2.13. TControlBar - инструментальная панель
Компонент служит удобным контейнером для размещения инструментальных панелей TTооlBаr. Он активно использует технологию Drag&Dock для управления положением панелей. На рис. 3.30 показан компонент TControlBar с двумя помещенными на него панелями TTооlваг.
Если вы захотите повторить пример, проделайте следующее.
Создайте новое приложение с пустой формой и положите на нее компонент ControlBar.
Рис 3.30. Пример использования компонента TControlBar
Установите в его свойство Align значение alTip, в AutoSize- True, в DradKind-dkDragMode. Оставьте в свойстве DragMode значение dmManual.
Положите на свободное место формы два компонента ImageList (страница Win 32 палитры компонентов) и наполните каждый из них двумя тремя изображениями.
В появившемся окне редактора (рис. 3.31) нажмите кнопку Add и выберите любой Вмр-файл из каталога Images\Buttons. Файлы в этом каталоге имеют по два изображения, в то время как компонент ImageList способен хранить только одиночные изображения одинакового размера. Поэтому редактор предложит вам разделить два изображения - согласитесь с ним (кнопка Ок). Щелкните по правому изображению в окне редактора (оно предназначено для отображения кнопки в запрещенном состоянии) и нажмите кнопку Delete, чтобы уничтожить его.
Повторите предыдущий шаг для загрузки нескольких изображений и затем закройте редактор.
Поместите на компонент ControlBar1 компонент ToolBar (страница Win32). Компонент ToolBar1, попав на панель ControlBar1.
Рис. 3.31. Окно редактора ImageList
Установите в свойство images компонента TooiBar1 значение ImageList1 и поместите в него столько кнопок, сколько изображений вы подготовили в imageList1. Для вставки кнопки щелкните по TooiBar1 правой кнопкой мыши и выберите опцию NewButton.
Поместите на свободное место формы еще один компонент ToolBar. Он автоматически прижмется к нижнему краю СоntrolBar1.Измените в его свойстве Align значение alTop на а1None и мышью сместите компонент несколько вниз - на этапе прогона программы этот компонент будет “причаливать” к ControlBar1. Свяжите компонент С ImageList2 (свойство Images) и создайте в нем кнопки (см. п. 7).
Для обоих компонентов поместите в свойства DragKind значения dkDock, В DragMode - dmAutomatic И В AutoSize — True.
Запустите программу и перетащите нижнюю панель кнопок на ControlBar1.
Свойства компонента:
Свойство |
Описание |
property AutoDrag: Boolean; |
Разрешает/запрещает компонентам ToolBar покидать границы СontrolBar |
property Picture: TPicture; |
Содержит изображение, которое, периодически повторяясь, создает фон компонента |
property RowSize: TRowSize; |
Задает высоту одного ряда инструментальных панелей. Умалчиваемое значение 25 в точности соответствует высоте одной панели и в этом случае между рядами нет зазора |
property RowSnap: Boolean; |
Если содержит True, “причаливаемая” панель будет выравниваться по высоте ряда |
Метод
procedure StickControls; virtual;
устанавливает все дочерние компоненты на их окончательные позиции после “причаливания” или “отчаливания” очередной инструментальной панели. Его нужно перекрыть, если стандартное размещение панелей по каким-либо причинам вас не устраивает;
События компонента:
Свойство |
Описание |
TBandInfoEvent = procedure(Sender: TObject; Control: TControl; var Insets: TRect; var PreferredSize, RowCount: Integer) of object-property OnBandInfo: TBandInfoEvent; |
Возникает при перемещении панели внутри компонента: Sender - компонент; control - панель; insets - зазор между сторонами компонента и панели; Рге-ferredsize - предпочтительная ширина панели; RowCount - количество рядов панелей |
TBandMoveEvent = procedure (Sender: TObject; Control: TControl; ARect: TRect) of object/property OnBandMove: TBandMoveEvent; |
Возникает при перемещении панели " внутри компонента: Sender - компонент; Control - панель; ARect - прямоугольник для размещения панели |
TBandPaintEvent = procedure (Sender: TObject; Control: TCon-tro,l; Canvas: TCanvas; var ARect: TRect; var Options: TBandPaintOp-tions) of object; property OnPaint: TNotifyEvent; |
Возникает при необходимости прорисовки панели: sender - компонент; Control - панель; Canvas - канва для прорисовки; ARect - прямоугольник прорисовки; Options - определяет, какая часть панели нуждается в прорисовке Возникает при необходимости прорисовки компонента |