Автор работы: Пользователь скрыл имя, 22 Января 2014 в 00:19, контрольная работа
Компонент TButton представляет собой стандартную кнопку Windows, инициирующую какое-то действие, то есть компонент TButton представляет собой командную кнопку. Основным отличием компонента TButton от его аналога в .NET (компонента Button) является невозможность отображения картинки на кнопке.
Основное с точки зрения внешнего вида свойство кнопки - Caption (надпись). Основное событие кнопки - OnClick, возникающее при щелчке на ней.
Position Позиция левого верхнего угла диалогового окна, заданная типом TPoint – записью, содержащей поля X (экранная координата по горизонтали) и Y (экранная координата по вертикали)
ReplaceText Только в компоненте TReplaceDialog - текст, который должен заменять FindText
Top Координата верхнего края диалогового окна, то же, что Position.Y
Основные методы:
CloseDialog Закрывает экземпляр TFindDialog (TReplaceDialog)
Execute Отображает диалог
Основные события:
OnFind Наступает, когда пользователь нажимает кнопку Найти далее.
OnClose Наступает, когда диалог закрывается.
OnReplace Наступает, когда пользователь нажимает кнопку Заменить или Заменить все
OnShow Наступает, когда диалог открывается.
Использовано событие OnFind для объекта TFindDialog.
Программа, реализующая поиск при выборе пользователем раздела меню Поиск (имя MFind), может иметь следующий вид (рис.3):
var SPos:integer;
...
procedure TForm1.MFindClick(Sender: TObject);
begin
{запоминание позиции курсора}
SPos:=Memo1.SelStart;
with FindDialog1 do begin
{начальное значение текста поиска - текст, выделенный в Memo1}
FindText:=Memo1.SelText;
{позиционирование окна
Position:=Point(Form1.Left,
{удаление из диалога кнопок "Вверх", "Вниз",
"Только слово целиком"}
Options:=Options + [frHideUpDown,frHideWholeWord]
{выполнение}
Execute;
end;
end;
procedure TForm1.FindDialog1Find(Sender: TObject);
begin
with FindDialog1 do begin
if frMatchCase in Options
{поиск с учетом регистра}
then Memo1.SelStart:=Pos(FindText,
Copy(Memo1.Lines.Text,SPos+1,
Length(Memo1.Lines.Text)))+
{поиск без учета регистра}
else Memo1.SelStart:=Pos(
AnsiLowerCase(Copy(Memo1.
Length(Memo1.Lines.Text))))+
if Memo1.SelStart>=Spos
then begin
{выделение найденного текста}
Memo1.SelLength:=Length(
{изменение начальной позиции поиска}
SPos:=Memo1.SelStart+Memo1.
end
else
if MessageDlg(
'Текст "'+FindText+'" не найден. Продолжать диалог?',
mtConfirmation,mbYesNoCancel,
then CloseDialog;
end;
Memo1.SetFocus;
end;
В программе вводится переменная SPos, сохраняющая позицию, начиная с которой надо проводить поиск.
рис.3
Информация о работе Контрольная работа по "Программированию"