Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: CL | DM;

Вниз

Поиск фрагмента текста в Memo и выделение его.   Найти похожие ветки 

 
Wood   (2004-11-29 11:34) [0]

Простите за ламерский вопрос, но просто еще не приходилось сталкиваться с такой проблемой. Подскажите, какими функциями пользоваться или ссылочку, плиз. Спасибо!


 
MBo ©   (2004-11-29 11:44) [1]

Memo.Lines.Text
Pos SelStart SelLength


 
kaktus   (2004-11-29 11:50) [2]

Если стоит вопрос о поиске фрагмента текста, то ты здесь работай с символами по обработке события Memo KeyPress или KeyDown. В этих обработчиках есть параметр Key - это символ нажатой клавиши. Далее для выделения текста в Memo используют следующее:
selStart и selLength
вот типа пример выделения и замены текста определенной длины на забитые значения (автозамена):

for i := 0 to keys.Count-1 do
    begin
      if (keys.Strings[i] = Str) then
      begin
        Memo1.SelStart := prProbel;
//первый пробел
        Memo1.SelLength := curProbel - prProbel;
//текущий пробел - предедущий
        Memo1.SetSelTextBuf(PChar(zam.strings[i]));
        Break;
      end;
   end;


 
Wood   (2004-11-29 11:57) [3]

MBo ©[1]
selStart и selLength я понимаю, POS - посмотрю F1, только откуда я узнаю с какого момента selStart и selLength, пока еще надо найти кусок текста...Спасибо.
kaktus >> вот типа пример выделения и замены текста определенной длины на забитые значения (автозамена) [2]
Спасибо, с key более-менее понятно, но ПОИСК в готовом тексте!?


 
Wood   (2004-11-29 12:07) [4]

Кажется, с POS я начал разбираться, как установить курсор на найденом участке, т.е. какое значение будет после функции Pos() для selStart и selLength.


 
MBo ©   (2004-11-29 12:18) [5]

http://delphibase.endimus.com/?action=viewfunc&topic=strsearch&id=10272
http://delphibase.endimus.com/?action=viewfunc&topic=strsearch&id=10271


 
kaktus   (2004-11-29 12:33) [6]

Вот в примере Memo1.SelStart := prProbel - это установка указателя (виртуально) на начальную позицию выделяемого текста. Для поиска фрагмента текста предлагаю такой себе алгоритм:

1.Определить длину искомого фрагмента(k := Length(str))!
2.В секторе объявлений переменных (глобально) - создай переменную  допустим обзовем ее count;
3.Далее в обработчике события Memo OnKeyPress ты прописываеш        Inc(count).
4.Потом после этого условие

if count = Length(str) then begin
 memo1.selStart  := prPos;
 memo1.selLength := Length(Memo1.Text);
end else begin
 prPos := Length(Memo1.Text);
 count := 0;
end;

Пробуй может будут ошибки - писал здесь!


 
Wood   (2004-11-29 12:56) [7]

>>MBo ©,kaktus
спасибо, буду разбираться



Страницы: 1 вся ветка

Текущий архив: 2004.12.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
9-1091815630
Антон
2004-08-06 22:07
2004.12.12
[GLScene]: TMemoryStream


1-1101732165
Bobby Digital
2004-11-29 15:42
2004.12.12
Restart


3-1100495043
Explorer
2004-11-15 08:04
2004.12.12
Учет документации


3-1100508460
neat
2004-11-15 11:47
2004.12.12
TDBLookupComboBox


9-1092490542
CoolProger:DWORD;
2004-08-14 17:35
2004.12.12
курсор мышки в дирекст