Содержание материала

Поиск и замена текста в TMemo

Code:

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;

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить