Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.022 c
1-1083219222
WondeRu
2004-04-29 10:13
2004.05.16
GetDIBBits - нот а гуд!!!


1-1083291386
CyBeR
2004-04-30 06:16
2004.05.16
Переход другую форму с помощью закладок


1-1083000926
Leonardo_de_caprio
2004-04-26 21:35
2004.05.16
Как ПРАВИЛЬНО останавливать Treadы в Delphi?


4-1079902615
KyRo
2004-03-21 23:56
2004.05.16
Вопрос по таймеру


3-1082201535
Error
2004-04-17 15:32
2004.05.16
Index is a ReadOnly




   Наверх