Поиск в memo

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

В этом маленьком уроке я покажу вам как осуществить поиск текста в компоненте 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 Apr 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 Sep 2017 в 14:22 #
    durak
    Xyй! 18 Sep 2016 в 15:32 #
    Это - Xyйня!
    Дима 16 Jul 2015 в 09:33 #
    Че за бред!? при чес тут ваще цикл.
    Happyness 01 Aug 2014 в 12:38 #
    Label-ы необязательны, просто с ними лучше понятен процесс

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