Недавно добавленные исходники

•  TDictionary Custom Sort  498

•  Fast Watermark Sources  866

•  3D Designer  1 795

•  Sik Screen Capture  1 451

•  Patch Maker  1 454

•  Айболит (remote control)  1 385

•  ListBox Drag & Drop  1 149

•  Доска для игры Реверси  21 085

•  Графические эффекты  1 328

•  Рисование по маске  1 267

•  Перетаскивание изображений  1 082

•  Canvas Drawing  958

•  Рисование Луны  795

•  Поворот изображения  752

•  Рисование стержней  800

•  Paint on Shape  485

•  Генератор кроссвордов  746

•  Головоломка Paletto  657

•  Теорема Монжа об окружностях  836

•  Пазл Numbrix  604

•  Заборы и коммивояжеры  834

•  Игра HIP  548

•  Игра Go (Го)  521

•  Симулятор лифта  541

•  Программа укладки плитки  503

•  Генератор лабиринта  559

•  Проверка числового ввода  516

•  HEX View  593

•  Физический маятник  521

•  Задача коммивояжера  553

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Поиск в TMemo с использованием TFindDialog



Оформил: DeeCo

  private
     { Private declarations }
     FSelPos: integer;
   public
     { Public declarations }
   end;

 var
   Form1 : TForm1;

 implementation

 {$R *.dfm}

 procedure TForm1.FindDialog1Find(Sender : TObject);
 var
   S : string;
   startpos : integer;
 begin
   with TFindDialog(Sender) do
   begin
     {If the stored position is 0 this cannot be a find next. }
     if FSelPos = 0 then
       Options := Options - [frFindNext];

      { Figure out where to start the search and get the corresponding 
       text from the memo. }
     if frfindNext in Options then
     begin
       { This is a find next, start after the end of the last found word. }
       StartPos := FSelPos + Length(Findtext);
       S := Copy(Memo1.Lines.Text, StartPos, MaxInt);
     end
     else
     begin
       { This is a find first, start at the, well, start. }
       S := Memo1.Lines.Text;
       StartPos := 1;
     end;
     { Perform a global case-sensitive search for FindText in S }
     FSelPos := Pos(FindText, S);
     if FSelPos > 0 then
     begin
        { Found something, correct position for the location of the start 
         of search. }
       FSelPos := FSelPos + StartPos - 1;
       Memo1.SelStart := FSelPos - 1;
       Memo1.SelLength := Length(FindText);
       Memo1.SetFocus;
     end
     else
     begin
       { No joy, show a message. }
       if frfindNext in Options then
         S := Concat('There are no further occurences of "', FindText,
           '" in Memo1.')
       else
         S := Concat('Could not find "', FindText, '" in Memo1.');
       MessageDlg(S, mtError, [mbOK], 0);
     end;
   end;
 end;

 // Show the FindDialog 
// Den FindDialog anzeigen 

procedure TForm1.Button1Click(Sender : TObject);
 begin
   FSelPos := 0;
   FindDialog1.Execute;
 end;




Похожие по теме исходники

Поисковик

Поиск символа

Поиск файлов

Поиск открытых файлов

 

Findup (поиск дублей)

Дейкстра: поиск кратчайшего пути

BTMemoryModule




Copyright © 2004-2022 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте   Facebook   Ссылка на Twitter   Ссылка на Telegram