PostHeaderIconУрок9. Процедуры и функции. Главное меню


Часть урока для новичков

В прошлом уроке мы рассматривали структуру программы и модулей. Они состоят из заголовка и программного блока.

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

Заголовок состоит из первого слова 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 для всех действий, согласно таблице

 
Copyright © 2007-2010 IsIProg.ru. All Rights Reserved.