Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: CL | DM;

Вниз

Поиск   Найти похожие ветки 

 
010101001010001010101001   (2004-04-30 22:34) [0]

Как осуществить в текством редакторе такие функии как ПОИСК и ПОИСК И ЗАМЕНА.


 
Gero ©   (2004-04-30 22:36) [1]

Это зависит от того, какой компонент используется в качестве поля редактирования.


 
010101001010001010101001   (2004-04-30 22:38) [2]

TMemo


 
Gero ©   (2004-04-30 22:44) [3]


procedure TForm1.FindDialog1Find(Sender: TObject);
var
 Buff, P, FT: PChar;
 BuffLen: Word;
begin
 with Sender as TFindDialog do
 begin
   GetMem(FT, Length(FindText) + 1);
   StrPCopy(FT, FindText);
   BuffLen := Memo1.GetTextLen + 1;
   GetMem(Buff, BuffLen);
   Memo1.GetTextBuf(Buff, BuffLen);
   P := Buff + Memo1.SelStart + Memo1.SelLength;
   P := StrPos(P, FT);
   if P = nil then
     MessageBeep(0)
   else
   begin
     Memo1.SelStart := P - Buff;
     Memo1.SelLength := Length(FindText);
   end;
   FreeMem(FT, Length(FindText) + 1);
   FreeMem(Buff, BuffLen);
 end;
end;

procedure TForm1.ReplaceDialog1Replace(Sender: TObject);
begin
 with Sender as TReplaceDialog do
   while True do
   begin
     if Memo1.SelText <> FindText then
       FindDialog1Find(Sender);
     if Memo1.SelLength = 0 then
       Break;
     Memo1.SelText := ReplaceText;
     if not (frReplaceAll in Options) then
       Break;
   end;
end;



 
010101001010001010101001   (2004-04-30 22:50) [4]

Спасибо за код! У меня еще вопрос: как сделать "Поиск дальше"???


 
Gero ©   (2004-04-30 23:25) [5]


> У меня еще вопрос: как сделать "Поиск дальше"???

Код, приведенный в [3] это он и есть.


 
Alexander666 ©   (2004-05-01 06:50) [6]

Мда, и неплохо было бы для поиска почитать про алгоритмы поиска (ну эт если там целая Библия загружена :-))



Страницы: 1 вся ветка

Текущий архив: 2004.05.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.035 c
3-1082704510
huyone
2004-04-23 11:15
2004.05.16
Индексировать файл Foxpro DBASE III из программы?


1-1083610229
apel
2004-05-03 22:50
2004.05.16
использование модуля на С++


1-1082741799
GRF
2004-04-23 21:36
2004.05.16
Диалог выбора директории с кнопкой "Создать"


3-1082630969
huyone
2004-04-22 14:49
2004.05.16
как из программы создать индекс, переиндесировать старый?DBASE II


9-1072642390
TJ
2003-12-28 23:13
2004.05.16
Никто не знает почему Альфатрансперенси не пашет