Главная страницаОбратная связьКарта сайта

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


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;


Обсудить статью на форуме


Если Вас заинтересовала или понравилась информация по разработке на Delph - "Поиск и замена текста в TMemo", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:

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


Copyright © 2008 - 2024 Дискета.info