Добавление компонентов в хранилище объектов

В случае необходимости в Object Repository можно добавлять собственные диалоговые следующим образом:

1. Щелкнуть правой кнопкой мыши на диалоговом окне

2. Из контекстно-зависимого меню выбрать командуAdd to Repository

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

Создание собственного шаблона

1. Разместить на форме необходимые компоненты.

2. Установить через Object Inspector свойства каждого элемента .

3. По желанию, создать процедуры обработки событий для каждого элемента упраления.

4. С использованием мыши выбрать все компоненты, которые необходимо добавить в шаблон. После выбора компоненты обрамляются серым цветом.

5. Из меню Component выбрать команду для Delphi 3 Add Component Template…, а для Delphi 4 Create Component Template…

6. В диалоге ввести имя шаблона, страницу Палитры компонентов, пиктограмму.

Примечание: Шаблон компонента в любое время можно удалить из Палитры компонентов по команде Configure Palette из меню Component с последующей выборкой опции Delete.

Использование циклов

Пример FOR- WHILE-REPEAT

1.В новый проект надо поместить справа 3 кнопки с именами

Button1.Caption - FOR

Button2.Caption - WHILE

Button3. Caption - REPEAT

и из палитры Standart элемент List Box ( расположив его в первой части формы )

2. Дважды щелкнув по каждой кнопке, сформировать обработчик сообщений OnClick . И в соответствующем разделе редактора для каждой кнопки набрать следующее:

Procedure TForm1.Button1_FORClick ( Sender : T Object ) ;

Var

i : integer ;

Begin

ListBox1.Items.Clear ;

FOR i : = 1 to 20 do

ListBox1.Items.Add ( ‘ String ‘ + IntToStr ( I ) ) ;

end ;

Procedure TForm1.Button 2_WhileClick ( Sender : TObject ) ;

Var

i : integer ;

Begin

ListBox1.Items.Clear ;

Randomize ;

i : =0 ;

While i < 1000 do begin

i : = i + Raudom ( 100 ) ;

ListBox1.Items.Add (‘ Random Number : + IntToStr ( I ) ) ;

end ;

end ;

Procedure TForm1.Button3_RepeatClick ( Sender : T Object ) ;

Var

i : integer ;

Begin

List Box1.Items.Clear ;

Randomize ;

i : = 0 ;

Repeat

i : = i + Random ( 100 ) ;

ListBox1.Items.Add ( ‘ Random Number : ‘ + IntToStr ( I ) ) ;

Until(i>1000);

end ;

Процедура Randomize инициализирует генератор случайных чисел и функцию Random со значением диапозона, равным 100 .

Процедуры и функции, определяемые пользователем

Заголовок и тело процедуры или функции описывается сразу после слова implementationперед всеми другими действиями.

Пример пользовательской процедуры

1. На форме создать 2 метки и 2 кнопки.

2. Для кнопок вписать содержимое процедур Button1Click и Button2Click.

unit Unit22;

Interface

Uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

Type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Label1: TLabel;

Label2: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

Private

{ Private declarations }

Public

{ Public declarations }

end;

Var

Form1: TForm1;

Implementation

PROCEDURE ShowStr ( mo : INTEGER; lblLabel : TLabel );

{ьщ – параметр, по которому определяется выбор внутри процедуры, а lblLabel – êîìïîíåíò, ÷åðåç êîòîðûé ïðîèçâîäèòñÿ âûâîä èíôîðìàöèè}

VAR

s1 : STRING;

s2 : STRING;

BEGIN

IF mo = 1 THEN

BEGIN

s1 := '11111';

s2 := '222222';

END

ELSE

BEGIN

s1 := '33333';

s2 := '444444';

END;

lblLabel.Caption := s1 + s2;

END;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

CONST

sh1 = 1;

Begin

// ВЫЗВАТЬ ПРОЦЕДУРУ

ShowStr ( sh1, label1 );

end;

procedure TForm1.Button2Click(Sender: TObject);

CONST

sh1 = 1;

sh2 = 2;

Begin

// ВЫЗВАТЬ ПРОЦЕДУРУ

ShowStr ( sh2, label2 );

end;

End.

В данном примере пользовательская процедура может использоваться только внутри и для данного модуля. Если пользовательскую процедуру надо использовать и в другиз модулях приложения, то надо оператор заголовка процедуры поместить в раздел VAR части INTERFACE, повторив и заголовок, и тело в разделе IMPLEMENTATION.

Для вызова пользовательской процедуры из другого модуля, надо зтот другой модуль связать с модулем, в котором располагается сама процедура. через File/Use Unit.

Часто используемые процедуры и функции

Функция Copy

function Copy(s:string; Start,Size:Integer):String;

S: Строка, из которой копируются символы

Start: Позиция в строке, начиная с котрой выполняется копирование

Size: Размер копируемой строки

Функция ExtractFileName

function ExtractFileName(const Path: string): string;

Данная функция извлекает из полного пути доступа к файлу только его имя.

Ниже приводится пример извлечения имени файла из строки, возвращенной в результате выполнения диалога открытия файлов:

Procedure Tform1.Button1Click(Sender:TObject);

var FileName, FullPath:string;

Begin

{извлечь имя файла из пути, возвращенного из диалога Open}



Наши рекомендации