Поиск и замена текста в 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; |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!