Доклад по теме «Организация функции ПОИСК в 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;

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

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

Смотрите также:   Доклад по теме "Считаем время выполнения скрипта"

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

Для подготовки данной работы были использованы материалы с сайта http://andrey.nnov.ru/

Закажите работу от 200 рублей

Если вам нужна помощь с работой, то рекомендуем обратиться к профессионалам. Более 70 000 экспертов готовы помочь вам прямо сейчас.

 

Средняя оценка 0 / 5. Количество оценок: 0

Сожалеем, что вы поставили низкую оценку!

Позвольте нам стать лучше!

Расскажите, как нам стать лучше?

Научная статья по теме «Влияние сети интернет и социальных сетей на молодёжь (на примере студентов ЕГУ им. И.А. Бунина)»

Современное общество — это общество высоких технологий. Интернет охватил весь мир и все сферы жизнедеятельности людей. Интернет-магазины дают возможность совершать

Открыть / Скачать
Научная статья по теме «Рефлексивно-деятельностный подход в решении организационных конфликтов»

Рефлексия как процесс самопознания всегда вызывала интерес у многих мыслителей еще со времен античной философии. Аристотель определял рефлексию как «мышление,

Открыть / Скачать
Научная статья по теме «Возрастная и гендерная дискриминация в трудовых отношениях»

Дискриминация в трудовых отношениях остается одной из самых «острых» социальных проблем внутригосударственного и мирового масштаба. Дискриминация (discrimination) в переводе с

Открыть / Скачать