Поиск в 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 и если найдет выделит его. Довольно просто и понятно..



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

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

    Happyness 01 Aug 2014 в 12:33 #
    procedure TForm1.ButtonPoiskClick(Sender: TObject);
    var
    Maska:string;
    begin
    Maska:=Edit1.Text;
    If Pos(Maska, VesText)<>0
    Then
    Begin
    PoziciyaKursora:= Pos(Maska,VesText)+Length(Maska);
    LabelPoziciyaKursora.Caption:='Позиция курсора ' + IntToStr(PoziciyaKursora);
    Memo1.SetFocus();
    Memo1.SelStart:=Pos(Maska,VesText)-1+DeletedSimbolsCount;
    Memo1.SelLength:=Length(Maska);
    DeletedSimbolsCount:=DeletedSimbolsCount+PoziciyaKursora-1;
    Delete(VesText, 1, PoziciyaKursora-1);
    LabelVesText.Caption:=VesText;
    End;
    end;
    Happyness 01 Aug 2014 в 12:29 #
    Б#@! Кто нибудь может объяснить, почему этот дурацкий форум пишет "Ваше сообщение отклонено"?!!
    Happyness 01 Aug 2014 в 12:25 #
    var
    Form1: TForm1;
    PoziciyaKursora, DeletedSimbolsCount : Integer;
    VesText : string;

    implementation

    &#x007B;$R *.dfm&#x007D;

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    PoziciyaKursora:=0;
    DeletedSimbolsCount:=0;
    VesText:=Memo1.Text;
    end;

    procedure TForm1.ButtonResetClick(Sender: TObject);
    begin
    PoziciyaKursora:=0;
    DeletedSimbolsCount:=0;
    VesText:=Memo1.Text;
    end;
    Happyness 01 Aug 2014 в 12:24 #
    Вот полностью рабочий пример, и безо всяких циклов. Ищет последовательно все вхождения искомой строки (нажимаем кнопку ButtonPoisk)
    Happyness 01 Aug 2014 в 12:23 #
    ы

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