...
...

От Delphi 4 к Delphi 5 часть 3

От Delphi 4 к Delphi 5 Меню Delphi

Раздел меню Search (поиск) включает (рисунок 1) в себя команду Find, предназначенную для поиска нужного фрагмента текста. Так, например, в Редакторе кода это удобно, когда текст имеет большую величину, а пользуясь полосой прокрутки, затрачивается много времени. Открывающееся диалоговое окно Find имеет также вложенное окно Find in Files, хотя данная команда присутствует и как отдельная команда. С помощью ее поиск нужного текста можно осуществлять и в выбранном файле, причем можно задавать различные параметры поиска. Результаты поиска отображаются в нижней части окна Редактора кода (рисунок 2).

Команда Replace... (заменить текст) позволяет ввести изменения в тексте, который будет вами помечен, на другой определенный вами текст, используя диалоговое окно Replace Text в редакторе кода. Например, изменить текстовую часть Button1 на Knopka1 и т.д. Вы должны помнить, что это действие не производит изменения имени в свойстве Caption инспектора объекта для кнопки Button1. Большинство компонентов диалогового окна Replace Text идентичны компонентам диалогового окна Find Text.

Для того чтобы произвести замену, можно выбирать текст из предложенного списка, для этого необходимо нажать кнопку со стрелкой комбинированного окна. Если во втором окне "Заменить" не производить запись, а оставить его пустым, то произойдет просто удаление помеченной записи.

Команда Search Again (найти вновь). Если активизировано диалоговое окно поиска текста или замены текста, данная команда позволяет продолжить поиск или произвести замену.

Команда Incremental Search (быстрый поиск) позволяет осуществлять поиск по вводимым символам. Среда Delphi найдет в тексте первое вхождение печатаемой вами последовательности символов. Это хорошая возможность найти то, о чем вы знаете только приблизительно.

Команда Go to Line Number позволяет набрать номер строки Редактора кода, после нажатия кнопки Ok, курсор устанавливается в начале строки, номер которой вы определили.

Команда Find Error позволяет определить место последней ошибки после компиляции программы. После того как вы запустите данную команду на выполнение, Delphi откомпилирует вашу программу и остановит в месте последней ошибки, выделяя линию, которая вызывала ошибку времени выполнения.

Команда Browse Symbol позволяет обратиться к инструменту Browser Objects Delphi, который поможет изучить многообразие свойств вашей программы без чтения большого количества строк исходного кода. Browser позволяет визуально изучать иерархии объектов, просматривать все символические ссылки и модули, которые использует ваша программа.

Раздел меню View

Команда Project Manager (рисунок 3) открывает диалоговое окно менеджера проекта, с его помощью можно управлять файлами модулей и форм ваших приложений (рисунок 4). Менеджер проекта удобно использовать, осуществляя переход от окна Редактора кода к форме и обратно. В окне менеджера проекта указан маршрут нахождения форм, модулей и проекта. На диалоговом окне имеется кнопка New, открывающая окно Object Repository, аналогично команде New меню File.

Кнопка Remove позволит вам удалить формы и модули из проектной группы. После выделения одного из элементов менеджера проекта и щелчка правой кнопкой мыши появляется всплывающее меню, команды которого позволяют производить такие действия, как переименование, сохранение и т.д. То есть, нет необходимости обращаться к некоторым командам через основное меню, этим экономится время работы.

Команда Object Inspector позволяет вызвать на экран окно инспектора объекта, если вы его убирали с экрана.

Команда Alignment Palette вызывает палитру выравнивания компонентов на форме. Это визуальный вариант диалогового окна Alignment, которое вызывается командой меню Edit/Align. После вызова палитры выравнивания выделите элементы, которые вы хотите выровнять. Пиктограммы показывают, как будет происходить выравнивание.

Команда Browser открывает диалоговое окно Browser Objects, которое позволяет наблюдать модель наследования и взаимосвязи объектов. Оно дает возможность отслеживать иерархию моделей объектов в Delphi. Данный раздел доступен только после компиляции приложения.

Команда Code Explorer открывает окно редактора кода.

Команда Component List открывает диалоговое окно Components, которое позволяет набрать имя компонента или активизировать нужный компонент в предложенном списке. После нажатия кнопки Add выделенный компонент появится на форме.

Команда Window List открывает диалоговое окно со списком всех открытых окон Delphi, после выбора нужного окна и нажатия кнопки Ok позволяет отобразить данное окно.

Debug Windows (отладчик). Среда Delphi обладает большим количеством средств, которые позволяют проследить выполнение вашей программы и узнать статус программы в любой момент времени. Команда Debug Windows имеет каскадное меню со списком команд. Breakpoints (контрольные точки) можно разместить в программе там, где вы хотите остановить выполнение программы в надежде понять, в чем заключается ошибка. Если установлена контрольная точка, Delphi выполняет вашу программу до этой точки, останавливается и выводит на экран текст программы.

Контрольные точки можно установить разными способами:

1. В Редакторе кода нажать левое поле строки, куда необходимо вставить контрольную точку.

2. Установить курсор на строку, куда необходимо вставить контрольную точку, и нажать клавишу F5.

3. Установить курсор на строку, щелкнуть правой кнопкой мыши и в меню выбрать команду Debug, далее Toggle Breakpoint.

Команда Breakpoint в меню View позволяет просмотреть список контрольных точек в окне Breakpoint List.

Контрольные точки устанавливаются в строках с действительными операторами, на комментарий контрольная точка не ставится.

Команда Call Stack используется при отладке программ со многими вложенными функциями. Окно Call Stack предоставляет список вызывавшихся процедур, показывает не только имена вызываемых функций, но и параметры, которые были им переданы. Двойное нажатие левой кнопки мыши на имени функции приводит к установке курсора в Редакторе кода на последней строке, которая исполнялась в этой функции. Для установки курсора на функцию необходимо щелкнуть правой кнопкой мыши и выбрать из списка команд Edit Source.

Команда Watches открывает диалоговое окно Watch List, которое позволяет видеть содержимое переменных во время выполнения программы. Во время пошагового выполнения окно Watch List динамически обновляется. Нажимая правую кнопку мыши на выделенном компоненте окна Watch List, откроется всплывающее меню, позволяющее изменять значение переменных и добавлять новые переменные.

Команда Local Variables покажет текущие значения локальных переменных в режиме отладки. Если вы сохраняете это окно в открытом положении в течение вашей отладки, вы можете проверить, как ваша программа корректирует величины локальных переменных.

Команда Thread позволяет в случае останова программы в режиме отладки просмотреть адрес останова, список текущих процессов, которые в данный момент выполняются. Используя правую кнопку мыши, можно открыть меню, с помощью которого выходим в режим машинных команд на языке Assembler.

Команда Modules отображает исходный файл модуля с отображением базового адреса и маршрута размещения модуля.

Команда CPU (центральный процессор) открывает окно с машинным кодом компилятора на языке Assembler. Позволяет наблюдать процесс выполнения приложения на уровне ассемблера.

Команда Event Log показывает управляющие сообщения процессора.

Команда FPU (Delphi 5) активизирует окно FPU, позволяющее наблюдать информацию Floating - Point Unit в CPU или MMX - расширенную версию Intel для процессоров Pentium.

Команда Toggle Form/Unit (переход с формы на модуль) используется в том случае, когда вы работаете с формой и необходимо перейти в Редактор кода или наоборот.

Команда Units предназначена для перехода от одного модуля к другому, в случае нескольких модулей в вашем приложении.

Команда Forms предназначена для перехода от одной формы к другой, в случае нескольких форм в вашем приложении. Переход к форме производится выбором нужной формы в диалоговом окне View Form и нажатием кнопки Ok.

Type Library используйте при преобразовании компонентов Delphi в элементы ActiveX. Библиотека типов является основным документом OLE, содержащим информацию о типах данных, функциях-элементах и классах объектов, предоставленную управляющими активными элементами ActiveX или серверами.

New Edit Window открывает окно нового кодового редактора, оставляя на месте прежнее. Текущий модуль вашего окна редактирования появится и в новом окне. Наличие на экране нескольких окон редактирования позволяет одновременно видеть коды двух модулей.

Команда Toolbars (инструментальные средства) позволяет отображать или запрещать отображение следующих элементов панели с кнопками быстрого доступа: Standard, View, Debug, Custom, Component Palette, а также позволяет выход в диалоговое окно Customize для формирования команд на панели быстрого доступа.

Теперь опишем команды, которые появились в Delphi 5.

Команда Translation Manager (менеджер трансляции) активизирует окно, используемое при интернационализации приложений. Т.е. в зависимости от того, какой язык установлен в Windows на конкретном компьютере, ваше приложение автоматически будет разговаривать на этом языке.

Команда To Do List список планируемых задач проектирования. Представляет собой запись текущих задач, которые надо решить при разработке проекта.

Команда Desktops - управление конфигурациями окон. Каждый пользователь открывает те окна, которые требуются ему для того или иного вида работ, и располагает их удобным образом для себя. Среда Delphi позволяет запоминать конфигурацию окон.

Создание каскадного меню приложения.

Составим программу расчета площади круга, площади сегмента и площади сектора.

Для того чтобы создать каскадное меню, прикрепленное с правой стороны элемента в выпадающем меню, необходимо при нажатой клавише Ctrl нажать клавишу со стрелкой вправо. Элементы меню, вызывающие каскадные подменю, помечаются указывающим вправо треугольником во время выполнения, что подсказывает, что данный элемент меню, вместо выполнения команды, открывает другое подменю. Чтобы показать процесс создания каскадного меню, проделаем следующее:

1. Запустим Delphi.

2. Для сохранения модуля и проекта выберем из меню File команду Save Project As.... Сохраним файл модуля под именем Krug_pas, а файл проекта - под именем Krug dpr.

3. Поместим на форму компонент MainMenu.

4. Щелкнем дважды по пиктограмме MainMenu1 - откроется диалоговое окно Дизайнера меню.

5. Для выделенного заголовка меню в окне инспектора объекта выберем на вкладке Property свойство Caption, напишем слово, например "Решение". После этого нажмем клавишу Enter.

6. Будем наращивать меню вниз. Выберем следующий элемент меню и, используя вкладку Properties инспектора объекта, введем в заголовок слово "Круг".

7. Создадим каскадное меню для команды "Круг", для этого при нажатой клавише Ctrl нажмем клавишу со стрелкой вправо. Появится значок треугольника на команде "Круг" и элемент меню справа.

8. Для появившегося элемента введем заголовок "Площадь круга". И так далее введем заголовки для следующих элементов меню согласно вышеизложенному: "Площадь сектора" и "Площадь сегмента". Если вы хотите ввести новые нужные команды, например для расчета площади квадрата и т.д., то методика вам уже понятна. В данном примере ограничимся тремя расчетами. На рисунке 5 показано сформированное меню, ниже меню изображены формулы расчета площадей и собственно рисунок для круга, поясняющий расчеты, которые созданы с использованием редактора Word и к Delphi отношения не имеют. После ввода некоторых элементов меню можно перестроить их порядок и положение, перемещая их с помощью мыши.

Чтобы передвинуть элемент в другое место, необходимо выбрать элемент меню левой кнопкой мыши и, не отжимая кнопку, переместить на новое место. Можно перемещать элемент меню за пределы родительского меню, например, из выпадающего меню в линейку основного меню или в другое выпадающее меню. В вопросе расположения вы полностью свободны. Введем подчеркнутые символы для команд меню, используя символ амперсанта для создания клавиш быстрого доступа. Для команды "&Площадь круга" поставим амперсант перед буквой "П", для команды "П&лощадь сектора" - перед буквой "л". Увидим появление подчеркнутых букв в меню. Помним о том, что команды под заголовком не должны иметь одинаковые подчеркнутые символы. Для команды "Площадь сегмента" зададим "горячую" клавишу, используя свойства ShortCut на вкладке Properties инспектора объекта. Выберем комбинацию клавиш из предложенного списка, например Ctrl+D. После выбора данной комбинации сочетание выбранных клавиш появится справа от команды "Площадь сегмента".

9. Поместим три компонента окон редактирования Edit1... Edit3 для ввода значений радиуса круга, углов и для вычисления площади сегмента и сектора. Нажмем клавишу Shift и, не отпуская ее, выберем компонент Edit1 со страницы Standard палитры компонентов. Щелкнем левой кнопкой на форме, в то место, куда необходимо поместить компонент. Выберем место для второго компонента и щелкнем левой кнопкой мыши - появится новый компонент, и т.д. для третьего компонента. Но помните, что клавишу Shift по-прежнему не отпускаем.

10. Выберем компоненты Label1...Label3, поместим их на форму сверху от компонентов Edit1...Edit3 и, используя свойство Caption на вкладке Properties инспектора объекта для каждого компонента Edit, введем соответствующие надписи: "Ввод значения радиуса", "Ввод значения угла бета", Ввод значения угла альфа".

11. Выберем компоненты Edit4...Edit6 и поместим на форму, данные компоненты необходимы для вывода результатов расчета. Поместим компоненты Label4...Label6 над компонентами Edit4...Edit6 и введем соответствующие надписи: "Площадь круга", Площадь сектора", "Площадь сегмента". Уберем текстовые надписи в компонентах Edit1...Edit6. Для каждого выделенного компонента на вкладке Properties инспектора объекта в свойстве Text удалим надписи Edit1... и т.д. Для компонентов Edit1...Edit3 можно ввести начальные значения. Эти значения после запуска приложения уже будут находиться в окнах редактирования.

12. Для того чтобы было легче читать текст программы, изменим имена для команд "Площадь круга", "Площадь сектора", "Площадь сегмента" на соответствующие имена "Krug", "Sektor", "Segment". Для каждой выбранной команды на вкладке Properties, используя свойство Name, введем новые имена.

13. Выбирая поочередно команды на пиктограмме MainMenu1, производим два щелчка левой кнопкой мыши и в раскрывшемся окне Редактора кода введем код программы, который показан ниже. Не забудем также описать переменные, имена переменных для лучшего чтения необходимо называть полным именем, соответствующим их действиям.

14. Для активизации окон редактирования Edit1...Edit3 выбранным вами цветом можно написать следующий код. В тексте программы представлен пример кода для окна редактирования Edit1. Вам предстоит повторить этот код для всех окон редактирования. В данном случае при активизации окна цвет его становится желтым, а после выхода - белым. Для написания кода необходимо активизировать компонент Edit1, перейти на вкладку Events инспектора объекта, найти событие OnEnter, дважды щелкнуть левой кнопкой мыши и в раскрывшемся окне Редактора кода записать между служебными словами begin и end соответствующий код. Далее выбрать событие OnExit и проделать аналогичные процедуры, но уже с написанием другого кода. Ниже представлен текст программы. На рисунке 6 показан результат работы программы "Круг".
unit Krug_; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Di
alo
gs, Menus, StdCtrls; type TForm1 = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuIte
m
;
 Krug: TMenuItem; Sector: TMenuItem; Segment: TMenuItem; N6: TMenuItem; N7: TMenuItem; N8: TMe
nu
It
e
m; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel
; 
E
dit
4:
 TEdit; Edit5: TEdit; Edit6: TEdit; Label4: TLabel; Label5: TLabel; Label6: TLabel; proc
e
d
ur
e Kr
ugCl
ick(Sender: TObject); procedure SectorClick (Sender: TObject); procedure SegmentClic
k 
(Se
nder:
 TObj
e
ct); procedure Edit1Enter(Sender: TObject); procedure Edit1Exit(Sender: TObjec
t
)
;
 priv
ate { 
Privat
e 
declarations } public { Public declarations } end; var Form1: TForm1; 
i
mp
lem
entatio
n {$R *
.DFM} v
ar 
SKRUGA,SSEKTORA, SSEGMENTA,R,BETA,ALFA:Real; procedure TForm1.K
ru
gCl
ick 
(Sender:
 TObject
); begin
 R:=
StrToFloat(Edit1.Text); SKRUGA:=pi*R*R; Edit4.Text:=Floa
tTo
Str(
SKRU
G
A); end; 
procedure
 TForm1.S
ector
Click (Sender: TObject); begin BETA:=StrToFloat(
Edit
2.Tex
t); S
SE
KTORA:=pi*
R*R*BETA/3
60; Edit5.
Text:=
FloatToStr(SSEKTORA); end; procedure TFo
rm1.S
egment
Click 
(Se
nder: TObje
ct); begin 
ALFA:=StrTo
Float(E
dit3.Text); SSEGMENTA:=R*R/2*(pi
*ALFA/
180-SIN
(ALFA))
; Ed
it6.Text:=Fl
oatToStr(SSE
GMENTA); end
; proced
ure TForm1.Edit1Enter (S
ender: 
TObject)
; begin 
Edit1
.Color:=clYel
low; end; pro
cedure TForm1
.Edit1Exi
t (Sender: TObje
ct); beg
in Edit1.
Color:=cl
White;
 end; end.
Литература:

1. Марко Канту. Delphi 2 для Windows 95/NT. Москва. ООО "Малип". 1997 г.

2. Джон Матчо. Дэвид Р. Фолкнер. Delphi. Москва. БИНОМ. 1995 г.

3. Эндрю Возневич. Delphi. Освой самостоятельно. Москва. Восточная книжная компания. 1996 г.

4. В.В.Фаронов. Delphi 3. Учебный курс. Москва. Издательство Нолидж.1998г.

5. А. Я. Архангельский. Программирование в Delphi 5. Москва. ЗАО "Издательство Бином". 2000 г. Владимир Скуратов (c) компьютерная газета




© Компьютерная газета

полезные ссылки
Ремонт ноутбуков, компьютеров, мониторов