Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Delphi (новый) без баз данных.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
7.61 Mб
Скачать

16.6. Объект ColorDialog

Компонент создает и обслуживает стандартное окно выбора цвета.

Свойство

Значение

Color

Содержит выбранный цвет

CustomColors

Содержит до 16 цветов, определенных пользователем. Каждая строка имеет следующий формат: ColorX=HHHHHH, где X – буква от А до Р, определяющая номер цвета, HHHHHH –шестнадцатеричное представление цвета в формате RGB.

Options

Определяет настройку окна:

cdFullOpen – паказывать с развернутчм окном выбора цвета пользователем;

cdPreventFullOpen – запретить показ окна выбора цвета пользователя;

cdSolidColor – выбирать ближайший сплошной цвет;

16.7. Практическая работа

С оздадим приложение, на примере которого рассмотрим работу с диалогами выбора шрифта и цвета. На форме расположим компоненты Button1, Button2, Label1, ColorDialog1(CD1) и FontDialog1(FD1)

Кнопка Button1 вызывает диалог выбора шрифта для текста, содержащегося в Label1. Кнопка Button2 вызывает диалог выбора цвета для окна приложения.

procedure TForm1.Button1Click(Sender: TObject);

begin

if FD1.execute then

label1.font:=FD1.font;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

if CD1.execute then

Form1.color:=CD1.color;

end;

16.8. Объекты FindDialog и ReplaceDialog

Стандартные диалоговые окна для поиска и замены текстового фрагмента

Свойство

Значение

FindText

Указывает образец для поиска

Position

Содержит горизонтальную и вертикальную позицию верхнего левого угла места появления окна

Options

Определяет настройку диалога:

frDown – устанавливает поиск вперед по тексту

frFindNext – сообщает программе, что пользователь нажал кнопку «Найти далее»

frReplace – используется в компоненте ReplaceDialog и указывает на необходимость замены текущего выбора

frReplaceAll - используется в компоненте ReplaceDialog и указывает на необходимость замены всех вхождений образца поиска

ReplaseText

Содержит текст замены

Для компонентов определены следующие события:

OnFind – возникает при нажатии на кнопку «Найти далее». Обработчик события находит образец в тексте и показывает его пользователю.

OnReplace - возникает при нажатии кнопки «Заменить» или «Заменить все»

16.9. Проект «Примитивный редактор текста»

Создадим редактор, в котором можно создавать, просматривать, сохранять текстовые файлы, изменять шрифт и цвет символов, искать нужное слово.

Разместите на форме компонент Memo и MainMenu с соответствующими пунктами: Файл/(Создать, Открыть, Сохранить, Выход), Формат/(Шрифт, Цвет), Правка/(Найти, Заменить), и панель состояния StatusBar

Файл/Создать

procedure TForm1.New1Click(Sender: TObject);

begin

memo1.clear;

StatusBar1.SimpleText:=’’;

end;

Файл/Открыть

procedure TForm1.Open1Click(Sender: TObject);

begin

OpenDialog1.Filter:='Текстовые файлы|*.txt';

If OpenDialog1.Execute then

memo1.Lines.LoadFromFile(OpenDialog1.FileName);

StatusBar1.SimpleText:=OpenDialog1.FileName;

end;

Файл/Сохранить

procedure TForm1.Save1Click(Sender: TObject);

begin

If SaveDialog1.Execute then

if SaveDialog1.FileName<>'' then

Memo1.Lines.SaveToFile(SaveDialog1.FileName)

end;

Файл/Выход

procedure TForm1.Exit1Click(Sender: TObject);

begin

If CloseQuery then Form1.Close;

end;

Формат/Шрифт

procedure TForm1.Font1Click(Sender: TObject);

begin

If fontDialog1.Execute then

Memo1.Font:=Fontdialog1.Font;

end;

Формат/Цвет

procedure TForm1.Color1Click(Sender: TObject);

begin

if ColorDialog1.Execute then

Memo1.Color:=colorDialog1.Color;

end;

Процедура на пункт меню Правка/Найти

procedure TForm1.Find1Click(Sender: TObject);

begin

FindDialog1.Execute;

end;

Процедура на компонент FindDialog

procedure TForm1.FindDialog1Find(Sender: TObject);

begin

If Pos(FindDialog1.FindText, Memo1.Text)<>0 then

begin

Memo1.HideSelection:=False;

Memo1.SelStart:=Pos(FindDialog1.FindText, Memo1.Text)-1;

Memo1.SelLength:=Length(FindDialog1.FindText);

end

else

MessageDlg ('Строка '+FindDialog1.FindText+' не найдена',mtConfirmation,[mbYes],0);

end;

Процедура на пункт меню Правка/Заменить

procedure TForm1.Replace1Click(Sender: TObject);

begin

ReplaceDialog1.Execute;

end;

Процедура на компонент ReplaceDialog

procedure TForm1.ReplaceDialog1Replace(Sender: TObject);

Label 10;

begin

Memo1.HideSelection:=True;

10:

If Pos(ReplaceDialog1.FindText, Memo1.Text)<>0 then

begin

Memo1.Selstart:=Pos(Replacedialog1.FindText, Memo1.Text);

Memo1.SelLength:=Length(Replacedialog1.FindText);

Memo1.Seltext:=Replacedialog1.ReplaceText;

Goto 10;

end;

Memo1.HideSelection:=false;

end;

end.