end;
end;
9. Пример использования диалога поиска текста в компоненте «RichEdit»:
Для кнопки запуска поиска нужно написать следующий обработчик:
procedure TForm1.Button1Click(Sender: TObject);
begin
FindDialog1.Position:=Point(RichEdit1.Left + RichEdit1.Width div 2, RichEdit1.Top);
FindDialog1.Execute;
end;
Для метода «OnFind» компонента «FindDialog» нужно написать следующий обработчик:
procedure TForm1.FindDialog1Find(Sender: TObject);
var k: LongInt;
begin
k := Richedit1.FindText(FindDialog1.FindText, 0, Length(Text), [stMatchCase]);
if k<>-1 then begin
Richedit1.SetFocus; Richedit1.SelStart:=k; Richedit1.SelLength:=Length(FindDialog1.FindText);
end;
end;
10. Пример печати текстовой информации из мемо-поля на принтере:
procedure TForm1.Button1Click(Sender: TObject);
var f: system.TextFile; i: longint;
begin
assignPrn(f); Rewrite(f);
writeln(f,’Print this text’);
printer.canvas.font:=memo1.font;
for i:=0 to memo1.lines.count-1 do
Writeln(f, memo1.lines[i]);
System.CloseFile(f);
end;
3. РАЗРАБОТКА ОКНА С НЕСКОЛЬКИМИ ИНТЕРФЕЙСНЫМИ ЗОНАМИ И РАСШИРЕННЫМ ИНТЕРФЕЙСОМ
Рассмотрим задачу, когда нужно сделать программу, окно которой состоит из нескольких зон, на которых находятся компоненты. Размер зон нужно уметь менять во время работы программы с помощью мыши. Пример задачи приведен на рис. 2.
Рис. 2. Форма с несколькими зонами и компонентами
В рассматриваемой задачи имеется три зоны: зона выбора пункта из компонента-дерева (верхняя левая), зона информации (верхняя правая) и зона управления (внизу). Мышью можно менять размеры «зона выбора – зона информации» и «зоны выбора и информации – зона управления».
Разработка примера происходит в три приема:
создание на форме зон из панелей и полос разделения
установка на зоны нужных компонент
написание процедур обработки компонент
3.1. Создание на форме зон
Для создания окна с несколькими областями, с изменяющимися размерами, нужно использовать компоненты «Panel» (вкладка «Standard»), «Splitter» (вкладка «Additional») и Инспектор объектов для их связывания. Рассмотрим алгоритм создания окна с тремя областями (см. рис.3):
наносим на пустую форму компонент «Panel1»;
устанавливаем у компонента «Panel1» выравнивание по правому краю (через Инспектор объектов): Panel1.Align:=alRight;
наносим на пустую часть формы слева компонент «Splitter1»;
устанавливаем у компонента «Splitter1» выравнивание по правому краю: Splitter1.Align:=alRight;
наносим на левую (пустую) часть формы компонент «Panel2»;
устанавливаем у компонента «Panel2» выравнивание по нижнему краю: Panel2.Align:=alBottom;
наносим на пустую часть формы слева компонент «Splitter2»;
устанавливаем у компонента «Splitter2» выравнивание по нижнему краю: Splitter2.Align: =alBottom;
наносим на левую верхнюю (пустую) часть формы компонент «Panel3»;
устанавливаем у компонента «Panel3» выравнивание по всему объему:Panel3.Align: =alClient.
Рис. 3. Форма с несколькими областями