Поиск в memo

Опубиковано: 31.05.2008 г., автор: , просмотров: 51345

    В этом маленьком уроке я покажу вам как осуществить поиск текста в компоненте MEMO. Давайте откроем Delphi и создадим новый проект, кидаем на форму компонент Edit, Memo, Button все они с закладки Standart. Отлично, идем дальше, в обработчике OnClick кнопки прописываем следующий код:

    procedure TForm1.Button1Click(Sender: TObject);
    var // Объявляем переменные
    Find:string; // Искомая строка
    i:integer; // Счетчик для цикла
    begin
    find:=Edit1.Text; // Записываем в find текст из Edit
    For i:=0 to Memo1.Lines.Count-1 do // Запускаем цикл поиска строки
    If Pos(FIND, Memo1.Lines.Text)<>0
    Then
    Begin
    Memo1.SetFocus();
    Memo1.SelStart:=Pos(FIND,Memo1.Lines.Text)-1;
    Memo1.SelLength:=Length(FIND);
    End;
    end;

    Программа будет искать в Memo текст введенный в Edit и если найдет выделит его. Довольно просто и понятно..



    Похожие материалы

      Последние из рубрики

      Андрей 09 Апр 2020 в 14:04 #
      procedure FindText(re: TRichEdit; sFindText: String; bForward, bCase: boolean);
      var
      s: String;
      i: integer;

      function PosR(SubStr, S: string): integer;
      begin
      for Result:=Length(s) downto 1 do
      if copy(s, Result, length(SubStr))=SubStr then break;
      end;

      begin
      s:=re.Text;
      if bForward then begin
      s:=copy(s, re.SelStart+re.SelLength+1, MaxInt);
      if bCase then i:=Pos(sFindText, s)
      else i:=Pos(AnsiLowerCase(sFindText), AnsiLowerCase(s));
      if i<>0 then begin
      re.SelStart:=re.SelStart+re.SelLength+i-1;
      re.SelLength:=length(sFindText);
      end
      else ShowMessage('Не найдено "'+sFindText+'"');
      end
      else begin
      s:=copy(s, 1, re.SelStart);
      if bCase then i:=PosR(sFindText, s)
      else i:=PosR(AnsiLowerCase(sFindText), AnsiLowerCase(s));
      if i<>0 then begin
      re.SelStart:=i-1;
      re.SelLength:=length(sFindText);
      end
      else ShowMessage('Не найдено "'+sFindText+'"');
      end;
      end;
      asad 08 Сен 2017 в 14:22 #
      durak
      Xyй! 18 Сен 2016 в 15:32 #
      Это - Xyйня!
      Дима 16 Июл 2015 в 09:33 #
      Че за бред!? при чес тут ваще цикл.
      Happyness 01 Авг 2014 в 12:38 #
      Label-ы необязательны, просто с ними лучше понятен процесс

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