Главная страница
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.024 c
1-1101744804
frEE)stylEr
2004-11-29 19:13
2004.12.12
использование стрелок на клавиатуре


1-1101379411
denis24
2004-11-25 13:43
2004.12.12
findcomponent на другой форме


14-1100831566
ИМХО
2004-11-19 05:32
2004.12.12
Роман с камнем, мелодия


14-1101236498
Мирон
2004-11-23 22:01
2004.12.12
Последние две недели искал работу в Москве. Результаты.


1-1101704260
Dreamse
2004-11-29 07:57
2004.12.12
Проблема с treeview