Часть урока для новичков
В прошлом уроке мы рассматривали структуру
программы и модулей. Они состоят из заголовка и
программного блока.
Процедуры и функции представляют собой
кирпичики, дополнительные блоки, содержащиеся в
программном блоке. И по своему строению очень
напоминает модуль или программу. Тоже состоит из
заголовка и блока.
Заголовок состоит из первого слова procudure для
процедуры и function для функции. После этого слова
следует идентификатор, по которому данная
процедура или функция будет вызываться из
другого места программы (возможно даже из этой же
процедуры). После идентификатора могут следовать
в скобках входящие или выходящие параметры.
Заголовок функции завершается описанием ее типа.
После заголовка может следовать (по
необходимости) описание внутренних типов,
констант, переменных, меток. На эту тему мы
поговорим с вами в следующем уроке.
Далее следует сам программный блок процедуры или
функции, заключенный в операторные скобки begin и
end.
Пример процедуры:
procedure MyProcedure (InData: Integer); //
заголовок процедуры. InData - вносимый параметр
Var i1,i2,i3: Integer; // описание переменных в
данной процедуре
begin
// текст программы
end;
Функция от процедуры отличается только тем, что
кроме выполняемого программного блока может
возвращать определенное значение (по окончанию
сама принимает некоторое значение).
Пример функции:
function MyFunction (InData: Integer): Integer; //
возвращаемый тип данных - Integer
Var i1,i2,i3: Integer;
begin
// текст программы
Result:= 1; // возвращаемое значение
end;
Для осмысления вышесказанного рассмотрим
следующий пример.
function MyFunction (x: String): String;
begin
Result:= x+'рамма';
end;
procedure MyProcedure;
begin
ShowMessage(MyFunction('прог'));
end;
Допустим мы имеем некий программный код, который
в определенный момент вызывает на выполнение
процедуру
MyProcedure. Порядок выполнения
программы можно расписать следующим образом.
1. Вход в процедуру
MyProcedure.
2. Вызывается функция
MyFunction и управление
передается в нее. При этом туда передается
строковый параметр "прог".
3. В функции выполняется арифметическая операция
со строкой. К вносимому параметру прибавляется
строка "рамма" и все это передается в
качестве возвращаемого параметра функции
Result.
4. Возвращение в процедуру
MyProcedure. Теперь
MyFunction принимает значение "программа"
и это значение передается в качестве параметра в
процедуру
ShowMessage.
5. Процедура
ShowMessage является стандартной
(она описана в стандартном модуле, автоматически
подключаемом изначально). Эта процедура
производит вывод окошка с сообщением и кнопкой Ok.
6. После вывода окошка с текстом "программа"
текущая позиция выполнения программы выходит из
процедуры
MyProcedure в то место, откуда она
была вызвана.
Написание всего текста кода проекта сводится к
написанию программного блока внутри процедур и
функций, с переходом друг к другу по мере
необходимости.
Продолжаем поо5многу писать текстовый редактор.
Последний вариант редактирования можно скачать
с прошлого урока здесь.
В почти каждом MDI-приложении есть меню "Окно"
или "Window", в котором первыми пунктами стоят
различного рода операции с позиционированием
дочерних окон. Сделаем что-то подобное в нашем
многооконном приложении.
Открываем проект на приложении в среде
программирования Delphi. Комбинацией клавиш Shift+F12
выводим на экран главную форму
MainForm.
Начиная с версии Delphi 4, на странице
палитры компонентов Standart есть компонент
TActionList.
Его назначение, а также другие полезные
компоненты можно узнать из урока №6.
Устанавливаем этот компонент на проектировочную
форму
MainForm. Дважды щелкаем по нему
мышкой или выбираем пункт "
Action List Editor"
из выпадающего меню по правой кнопке мыши.
Открывается окно изменения действий. Нажимаем
комбинацию клавиш Ctrl+Ins, или выбираем пункт "
New
Standart Action" из ниспадаюшего меню на желтой
кнопки.
Появляется окно добавления стандартных действий,
которые в последствии можно привязать к пунктам
меню или кнопкам.
С помощью нажатой кнопки Shift или Ctrl
выберите все стандартные действия, которые
относятся к категории Window. Это и есть действия
управлением состоянием окон. Нажимаем на кнопку
Ok. Теперь вы видите, что в списке действий
появилась категория Window (в левой части), в которой
находятся все выбранные стандартные действия с
окнами (в правой части).
По умолчанию все стандартные действия будут
иметь названия на английском языке, поэтому
будем из русифицировать вручную. Выбираем первый
пункт списка действий Arrange1 и меняем свойство Caption
на "Упорядочить значки". Здесь вы сразу
заметите, что изначально это свойство имеет
значение "&Arrange". Знак амперсанта означает,
что следующий за ним символ будет подчеркнут. Это
свойство полезно для быстрого выбора пункта
данного меню с помощью горячей подчеркнутой
клавиши, когда меню активизировано (подробнее
можно узнать из справочной системы Windows). Вы сами
можете назначать свои буквы быстрого доступа к
пунктам меню самостоятельно. Скажу только, что за
свою многолетнюю практику ни разу не встречал
человека, который пользовался бы таким доступом
в меню, поэтому в своих программах подчеркнутых
букв не делаю. Но вы пожете не пренебрегать
правилами хорошего тона в программировани и все
делать по правилам.
Таким образом меняем свойства Caption для всех
действий, согласно таблице