- •Методическое пособие для самостоятельных работ «Основы интегрированной среды программирования 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 "Электрические системы и комплексы транспортных средств",
If b1 or b2 then
Showmessage ('Выбраны кнопка(и) '+x2+x3)
else
ShowMessage ('Кнопки не выбирались');
end;
4.2.4. Управление окнами
В предыдущем примере мы создали одно собственное окно для ввода информации. Если выбирать пункт меню New Dialog многократно, то будет создано несколько копий данного диалогового окна и каждое из них может содержать свои значения переменных. Кроме того, можно иметь у одного главного окна много разных подчиненных окон и для каждого окна можно открыть несколько копий. Поэтому возникает вопрос: как организовать из главного окна управление подчиненными окнами. Для этого имеются следующие системные переменные:
MDIChildCount – количество открытых дочерних окон, если их нет, то 0;
ActiveMDIChild – имя активного дочернего окна, его можно использовать при ссылке на него (в качестве имени используется адрес), если активных окон нет, то эта переменная имеет значение nil;
MDIChildren – массив, содержащий имена (адреса) всех открытых окон в порядке их открывания, минимальное значение индекса равно нулю.
Кроме того, имеются команды для управления размещением окон, размерами окон, расположением иконок (если окна свернуты), передвижением между окнами. Напоминаем, что можно создать одновременно много дочерних окон, но только одно из них может в данный момент времени быть активным.
Добавим в горизонтальное меню пункт Window с подпунктами Minimize all (Минимизировать все дочерние окна до пиктограмм), Arrange icons (Упорядочить пиктограммы), Close activ, Close all (закрыть активное или все окна), Cascade (Каскадирование окон), Previous, Next (Переход к предыдущему – следующему окну). Реализация соответствующих команд меню приведенa ниже:
procedure TForm1.Minimizeall1Click(Sender: TObject);
var
I:integer;
begin
{ Минимизация всех окон до пиктограмм}
for i:=MDIChildCount-1 downto 0 do
MDIChildren[i].WindowState:=wsMinimized;
end;
procedure TForm1.Arrange1icons1 Click(Sender: TObject);
begin
{ Упорядочение пиктограмм}
ArrangeIcons;
end;
procedure TForm1.Closeactiv1Click(Sender: TObject);
begin
{Закрытие активного окна}
if ActiveMDIChild<>nil then ActiveMDIChild.Close;
end;
procedure TForm1.Closeall1Click(Sender: TObject);
var
I:integer;
begin
{ Закрытие всех окон }
for i:=MDIChildCount-1 downto 0 do
MDIChildren[i].Close;
end;
procedure TForm1.Cascade1Click(Sender: TObject);
begin
{ Расположение окон “Каскадом” }
Cascade;
end;
procedure TForm1.Previous1Click(Sender: TObject);
begin { Переход к предыдущему окну }
Previous;
end;
procedure TForm1.Next1Click(Sender: TObject);
begin
{ Переход к следующему окну }
Next;
end;
4.2.5. Работа с меню
В MDI–приложениях меню имеется только в главном окне, однако оно может видоизменяться в зависимости от того, какое дочернее окно активно. Если Вы внимательно читали предыдущий материал, то заметили, что горизонтальное меню нашего приложения имеет следующую структуру:
File Windows Help
Создадим еще одно подчиненное окно, приведенное на рис. 4.5. Построим это окно, исходя из пустой формы, т.е. выберем из меню Delphi пункт New Form и не будем пользоваться галереей форм. Свойство FormStyle должно иметь значение fsMDIChild. В саму форму можно включить все имеющиеся в палитрах компонент элементы, кроме меню, использование которого рассмотрим позже. Естественно, в главном окне должен быть пункт меню для открытия этого окна. Пусть этим пунктом будет New Form в меню File. Его реализация:
procedure TForm1.NewForm1Click(Sender: TObject);