Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Вниз

Поиск фрагмента текста в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.052 c
3-1100100160
by
2004-11-10 18:22
2004.12.12
Не срабатывают DEFAUL значения


14-1101280576
ИМХО
2004-11-24 10:16
2004.12.12
Для чего создана музыка: чтобы СЛУШАТЬ или чтобы ТАНЦЕВАТЬ?


1-1101366523
Павел
2004-11-25 10:08
2004.12.12
Формат файлов bpl, dcp,dcu


1-1101746383
Df
2004-11-29 19:39
2004.12.12
if, then, else on RichEdit


14-1101020968
zokzok
2004-11-21 10:09
2004.12.12
М. Кэнту - Delphi 7 для проф.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский