Диплом, курсовая, контрольная работа
Помощь в написании студенческих работ

Организация функции ПОИСК в Tmemo

РефератПомощь в написанииУзнать стоимостьмоей работы

Для начала посмотрим, в каком направлении нужно искать и соответственно выберем текст в котором надо искать: S:=FindDialog.FindText; // переменной s присваивается строка, которую нужно найти Теперь напишем код собственно поиска: Представленный ниже код я использовал при написании текстового редактора. Всё вроде работает. Если строка найдена, то она выделяется, если нет, то выдаётся соответстующее… Читать ещё >

Организация функции ПОИСК в Tmemo (реферат, курсовая, диплом, контрольная)

Организация функции ПОИСК в TMemo

Предводителев Сергей.

Представленный ниже код я использовал при написании текстового редактора. Всё вроде работает.

Итак, на форме должны быть TMemo (Editor), TFindDialog (FindDialog) и TButton (Button).

Сначала напишем обработчик нажатия на кнопку:

procedure TForm1. ButtonClick (Sender: TObject);

begin.

FindDialog.Execute; // Открытие диалога Поиск.

end;

В свойствах дилога должны быть True опции frHideWholeWord (Скрыть в диалоге выбор флажка «Только слово целиком »), frHideMatchCase (Скрыть в диалоге выбор флажка «С учётом регистра ») и frDown (по-умолчанию направление поиска вниз), все остальные опции должны быть False.

В Editor свойство HideSelection должно быть False.

Теперь напишем обраобтчик на нажатие кнопки Найти далее в диалоге Поиск.

Должны быть описаны следующие переменные и метки:

var.

SelPos, X, i:integer;

s, textE: string;

label 1;

Для начала посмотрим, в каком направлении нужно искать и соответственно выберем текст в котором надо искать:

if frDown in FindDialog.Options.

then Editor. SelStart:=Editor.SelStart+Editor.SelLength; // это для «поиск далее «.

textE:=Editor.Text;

X:=Editor.SelStart+1;

if frDown in FindDialog.Options.

then.

textE:=Copy (textE, X, Length (textE)-X+1).

else.

textE:=Copy (textE, 0, X-1);

s:=FindDialog.FindText; // переменной s присваивается строка, которую нужно найти Теперь напишем код собственно поиска:

if frDown in FindDialog.Options.

then.

{ код поиска вниз }.

begin.

SelPos := Pos (s, textE);

if SelPos > 0.

then.

begin.

Editor.SelStart := SelPos + X — 2;

Editor.SelLength:=length (s);

end.

else ShowMessage (pchar («Текст „“ + FindDialog. FindText+ „“ не найден. »));

end.

else.

{ код поиска вверх }.

begin.

for i:=length (textE)-length (s) downto 1 do.

if copy (textE, i, length (s))=s.

then.

begin.

Editor.SelStart := i-1;

Editor.SelLength:=Length (s);

goto 1;

end;

ShowMessage (pchar («Текст „“ + FindDialog. FindText+ „“ не найден. »));

1:

end;

Если строка найдена, то она выделяется, если нет, то выдаётся соответстующее сообщение.

Внимание! Запрещается перепечатка данной статьи или ее части без согласования с автором. Если вы хотите разместить эту статью на своем сайте или издать в печатном виде, свяжитесь с автором.

Список литературы

Для подготовки данной работы были использованы материалы с сайта internet.

Показать весь текст
Заполнить форму текущей работой