Главная страница
    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.56 MB
Время: 0.054 c
1-1101891672
Галинка
2004-12-01 12:01
2004.12.12
Как динамически создать рисунок на форме


4-1098854639
Shura
2004-10-27 09:23
2004.12.12
Привилегии WindowsXP и MailSlot


14-1101400232
Undert
2004-11-25 19:30
2004.12.12
Опять Pointer


14-1101281444
Vlad Oshin
2004-11-24 10:30
2004.12.12
Просветите, экономисты, если времени не жалко


9-1092296171
Юра
2004-08-12 11:36
2004.12.12
Помогите!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский