Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

Видеокурс программиста и крэкера 5D 2O17
(актуальность: декабрь 2O17)
Свежие инструменты, новые видеоуроки!

  • 400+ видеоуроков
  • 800 инструментов
  • 100+ свежих книг и статей

УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Поиск текста в DBMemo

Попробуйте так: "Подключите" следующую процедуру к событию OnFind для FindDialog. Единственная проблема заключается в том, что в DBMemo я не могу получить выделенный текст, тем не менее в стандартном Memo такой проблемы нет.


 procedure TMainForm.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 := DBMemo1.GetTextLen + 1;
     GetMem(Buff, BuffLen);
     DBMemo1.GetTextBuf(Buff, BuffLen);
     P := Buff + DBMemo1.SelStart + DBMemo1.SelLength;
     P := StrPos(P, FT);
     if P = nil then
       MessageBeep(0)
     else
     begin
       DBMemo1.SelStart := P - Buff;
       DBMemo1.SelLength := Length(FindText);
     end;
     FreeMem(FT, Length(FindText) + 1);
     FreeMem(Buff, BuffLen);
   end;
 end;
 

Попробуйте так: "Подключите" следующую процедуру к событию OnFind для FindDialog. Единственная проблема заключается в том, что в DBMemo я не могу получить выделенный текст, тем не менее в стандартном Memo такой проблемы нет.


 begin
   DBMemo1.SelStart:= P - Buff;
   DBMemo1.SelLength:= Length(FindText);
 end;
   FreeMem(FT, Length(FindText) + 1);
   FreeMem(Buff,BuffLen);
   DBMemo1.SetFocus;
 end;
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS