Форум Программирование СТРОКИ. (Слововыделялка) |
Страницы: «1» «2» | |||||||
|
Вот часть программы, которая ищет и выделяет слово. Проблема в том, что она выделяет первое встретившееся слово. Как её переделать так, чтобы выделяло все слова, найденные в Memo1? procedure TForm1.btn1Click(Sender: TObject); var Find:string; // Искомая строка i:integer; // Счетчик для цикла begin for i:=0 to memo1.Lines.Count-1 do KMP(Memo1.Lines[i],Edit1.Text); find:=Edit1.Text; // Записываем в find текст из Edit For i:=0 to Memo1.Lines.Count-1 do // Запускаем цикл поиска строки If Pos(FIND, Memo1.Lines.Text)<>0 then Begin Memo1.SetFocus; // Memo1.SelStart:=Pos(FIND,Memo1.Lines.Text)-1; // Выделение найденного слова Memo1.SelLength:=Length(FIND); // end; end; | ||||||
|
В TMemo нельзя выделять несколько слов. Либо пиши свою реализацию компонента либо ищи аналоги с такой функцией. Чисти код! Чисти код! Чисти код! | ||||||
|
А, если выделяет только одно слово, можно тогда сделать так, чтобы при втором нажатии btn1 выделило второе слово? | ||||||
|
Цитата (JD): А, если выделяет только одно слово, можно тогда сделать так, чтобы при втором нажатии btn1 выделило второе слово? Да, можно. Если вместо функции Pos() юзать PosEx(). Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! | ||||||
|
PosEx() не работает. | ||||||
|
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! | ||||||
|
виконання програми розпочинається з того самого мiсця, де призупинилося. | ||||||
|
Чисти код! Чисти код! Чисти код! | ||||||
|
[Error] Unit1.pas(102): Undeclared identifier: 'PosEx' | ||||||
|
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! | ||||||
Перейти в раздел:
© 2004 - 2024, Delphi.int.ru |
Версия форума: 1.10 (19.01.2010) |
Выполнено за 0.02 сек. |