Добавление компонентов в хранилище объектов
В случае необходимости в 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}