П2.4.9. TReplaceDialog

Компонент создает и обслуживает окно поиска и замены текстового фрагмента. Класс TReplaceDialog наследует большинство свойств классаTFind-Dialog. Дополнительно в компоненте определено свойство ReplaceText (тип String), в котором содержится текст замены, и событие OnReplace, которое возникает при нажатии кнопки “Заменить” или “Заменить все”.

Создание “пустого” проекта

1. Создайте новый проект в среде Delphi File\New application (Если открыт уже существующий)

2. Сохраните проект File\Save All. Файл проекта (.dpr) сохраните под именем kmodel.dpr, файл модуля главной формы (.pas) сохраните под именем Umain.pas

Создание главной формы

1. Перед Вами новый проект и главная форма. Если она не видна нажмите F12. Выберите форму щелчком мыши. Далее переустановите следующие свойства формы в Инспекторе объектов (F11)
Caption = '"Компьютерное моделирование" - лабораторные работы'
FormStyle = fsMDIForm
name=fmMain
WindowState = wsMaximized

2. Поместите на форму компонент TMainMenu (страница Standard). Двойным щелчком на компоненте вызовите окно редактирования пунктов меню. Создайте следующие пункты меню, присвоив свойству Caption соответствующие значения.

Файл (подпункт Выход)
Компьютерная графика (подпункты Построение графика функции в явном виде; Построение графика функции в параметрическом виде; Построение графика функции в полярных координатах
Фракталы
Клеточные автоматы
Окно
(подпункты Плитка; Каскад)

3. После этого, не закрывая окна редактирования пунктов меню, выберите пункт “Окно” и переустановите в Инспекторе объектов (F11) значение для свойства name=miWindow. Далее вернитесь в главную форму и в Инспекторе объектов для свойства WindowMenu выберите из выпадающего списка значение miWindow. Скомпилируйте(ctrl+F9) и сохраните проект (File\Save All)

Создание обработчиков событий главной формы

Создайте пустой обработчик события для пункта меню “Файл\Выход” двойным щелчком мыши на нем и укажите следующий программный код:
close;

Создайте пустой обработчик события для пункта меню “Окно\Плитка” двойным щелчком мыши на нем и укажите следующий программный код:
tile;

Создайте пустой обработчик события для пункта меню “Окно\Каскад” двойным щелчком мыши на нем и укажите следующий программный код:
cascade;

Создание общей формы графических построений

1. Добавьте в проект новую форму (File\New Form) сохраните проект (File\Save All) и укажите имя модуля новой формы Uall.pas

2. Далее переустановите следующие свойства формы в Инспекторе объектов (F11)
Caption = ''
FormStyle = fsMDIChild
name=fmAll
WindowState = wsMaximized

В окне настроек проекта (Project\Options) переведите форму fmAll в разряд доступных (Available Forms) c помощью кнопки со стрелкой влево.
Скомпилируйте(ctrl+F9) и сохраните проект (File\Save All)

Добавьте на форму компонент Tpanel (Standard) и переустановите его свойства с помощью Инспектора объектов:
Align = alRight
Width = 160

4. Добавьте на созданную панель компонент TtoolBar (Win32) и переустановите его свойства с помощью Инспектора объектов:
EdgeBorders = [ebTop, ebBottom]
Flat = True
ShowHint = True

5. Добавьте на созданную панель инструментов (ToolBar1) компонент TPanel (Standard) и переустановите его свойства с помощью Инспектора объектов:
name = plBrush
Width = 24
Height = 22
BevelOuter = bvNone
Color = clWhite
Hint = ‘Цвет заливки’

6. Добавьте на созданную панель инструментов (ToolBar1) компонент TPanel (Standard) и переустановите его свойства с помощью Инспектора объектов:
name plPen
Width = 24
Height = 22
BevelOuter = bvNone
Color = clBlack
Hint = ‘Цвет линий’

7. Добавьте на созданную панель инструментов (ToolBar1) с помощью контекстного меню объекта (правый щелчок мыши New Button) новую кнопку и переустановите ее свойства с помощью Инспектора объектов:
name = tbClear
Hint = 'Очистить'
ImageIndex = 1

8. Добавьте на созданную панель инструментов (ToolBar1) с помощью контекстного меню объекта (правый щелчок мыши New Button) новую кнопку и переустановите ее свойства с помощью Инспектора объектов:
name=tbSave
Hint = 'Сохранить рисунок'
Caption = 'ToolButton1'
ImageIndex = 0

9. Добавьте на форму компонент TImage (Additional) и переустановите его свойства с помощью Инспектора объектов:
name = imWork
Align = alClient
Anchors = [akLeft,akTop,akRight,akBottom]

10. Добавьте на форму компонент TImageList (Win32) и добавьте следующие рисунки floppy.bmp, clear.bmp из стандартного набора Borland. Далее свяжите панель инструментов с компонентом ImageList1 переустановив соответствующим образом значение свойства ImageList.

11. Добавьте на форму компонент TColorDialog (Dialogs) и переустановите его свойства с помощью Инспектора объектов:
name = ColorDialog

12. Добавьте на форму компонент TSavePictureDialog (Dialogs) и переустановите его свойства с помощью Инспектора объектов:
name = SavePictureDialog
Filter = 'Bitmaps (*.bmp)|*.bmp'

13. Создайте пустой обработчик события для объекта plBrush с помощью двойного щелчка поместите в него следующий программный код:
if ColorDialog.execute then
begin
imWork.Canvas.brush.color:=ColorDialog.color;
plbrush.color:=ColorDialog.color;
end;

14. Создайте пустой обработчик события для объекта plPen с помощью двойного щелчка поместите в него следующий программный код:
if ColorDialog.execute then
begin
imWork.Canvas.pen.color:=ColorDialog.color;
plPen.color:=ColorDialog.color;
end;

15. Создайте пустой обработчик события для объекта tbClear с помощью двойного щелчка поместите в него следующий программный код:
imWork.Picture:=nil;
imWork.Canvas.Pen.Color:=plPen.color;
imWork.Canvas.Brush.Color:=plBrush.color;

16. Создайте пустой обработчик события для объекта tbSave с помощью двойного щелчка поместите в него следующий программный код:
if SavePictureDialog.Execute then
imWork.Picture.bitmap.SaveToFile(SavePictureDialog.filename);

17. Отредактируйте код модуля Uall.pas, добавив следующий программный код:

В секцию Public формы:
cx,cy:longint;
procedure MyLine(x1,y1,x2,y2:real);
procedure GetCxCy(var cx,cy:integer);
Procedure CoordLines(cx,cy:integer);
Procedure MyPixel(x,y:real;color:Tcolor);

В секцию реализации (после служебного слова Implementation и Uses):
Procedure TfmAll.MyPixel(x,y:Real;color:Tcolor);
begin
imWork.canvas.pixels[Round(cx+x),round(cy-y)]:=Color;
end;

Procedure TfmAll.CoordLines(cx,cy:Integer);
begin
myline(-cx,0,cx,0);
myline(0,-cy,0,cy);
end;

procedure TfmAll.GetCxCy(var cx,cy:integer);
begin
cx:=imWork.Width div 2;
cy:=imWork.Height div 2;
end;

procedure TfmAll.MyLine(x1,y1,x2,y2:real);

begin
imWork.Canvas.MoveTo(round(cx+x1),round(cy-y1));
imWork.Canvas.lineTo(round(cx+x2),round(cy-y2));
end;

18. Выберите в списке объектов Инспектора объектов форму fmAll и создайте пустой обработчик события FormClose (закладка Events) и поместите в него следующий программный код:
cleanupinstance;
release;

19. Выберите в списке объектов Инспектора объектов форму fmAll и создайте пустой обработчик события FormCreate (закладка Events) и поместите в него следующий программный код:
imWork.Picture:=nil;
color:=clWhite;
imWork.Canvas.brush.Color:=clwhite;
imWork.Canvas.pen.Color:=clBlack;
GetCxCy(cx,cy);

20. Скомпилируйте(ctrl+F9) и сохраните проект (File\Save All)

21. Общий вид главной формы

22. Общий вид вспомогательной формы графических построений


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: