Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2012 02 26 Основы программирования в Delphi.docx
Скачиваний:
19
Добавлен:
16.08.2019
Размер:
205 Кб
Скачать
☆

Параметры по умолчанию

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

Рассмотрим пример подпрограммы с параметром по умолчанию:

// Объявление процедуры с параметром

// EraseFirst, который по умолчанию имеет значение false.

procedure Redraw(EraseFirst : Boolean = False);

// описание процедуры

procedure Redraw(EraseFirst : Boolean);

begin

if (EraseFirst) then begin

{ код стирания изображения }

end;

{ код рисования изображения }

end;

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

Redraw;

Redraw(False);

При объявлении функций и подпрограмм обычные параметры должны предшествовать параметрам по умолчанию:

{ Объявление функции воспроизведения звукового файла}

function PlayWaveFile(Name : string; Loop : Boolean = False;

Loops : Integer = 10) : Integer;

{ Вызовы попрограммы PlayWaveFile }

R := PlayWaveFile('chime.wav'); { не надо повторять звук }

R := PlayWaveFile('ding.wav', True); { проиграть 10 раз }

R := PlayWaveFile('bell.wave',True, 5); { проиграть 5 раз }

  1. Включение внешнего файла в модуль

Подключаемый файл – это обычный текстовый файл, содержимое которого необходимо «подставить» в нужное место модуля. Обычно в таких файлах размещают объявления констант, директивы компилятора или фрагменты кода, которые используются и в других модулях проекта. Иногда бывает удобно вынести в отдельный файл часть отлаженного кода, чтобы уменьшить объем текста, видимого в редакторе. Внешний файл автоматически включается в текст модуля при компиляции с помощью специальной директивы. Для имени подключаемого файла рекомендуется расширение .INC.

Допустим, что внешний файл должен содержать код, показанный на листинге 2.2

Листинг2.2. Файл TEST.INC.

const

DefWidth = 500;

DefHeight = 300;

type

TCDRecord = record

Number : integer; // Порядковый номер CD в коллекции

Title : string; // Наименование

Artist : string; // Исполнитель

Year : integer; // Год выпуска

Recorded: string; // Фирма-производитель

Price : double; // Стоимость

Market : string; // Где куплен

end;

Чтобы создать включаемый файл, в главном меню Delphi надо выбрать File | New и затем дважды щелкнуть на пиктограмме Text диалога New Items. В результате откроется чистая страница редактора кода. Введите текст и сохраните файл под любым именем, выбрав в меню File | Save As. . .. Не забудьте при этом задать расширение имени INC, – иначе по умолчанию будет принято расширение TXT.

Чтобы включить внешний файл в текст модуля, необходимо воспользоваться директивой компилятора $I так как это показано в следующем примере:

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Classes,StdCtrls;

{$I Test.inc}

{ ... остальной текст модуля }

Директива $I дает указание компилятору взять исходный текст из файла TEST.INC и заменить им саму директиву. Можно считать, что действие директивы $I подобно копированию фрагмента текста из одного файла в буфер обмена и вставке содержимого буфера в результирующий файл.

Необходимо следить чтобы включаемый файл был синтаксически корректным. В противном случае компилятор зафиксирует ошибку.