Форум: "Основная";
Текущий архив: 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