Логин:     Забыли пароль?
 
Пароль:   Регистрация

Форум / Программирование - СТРОКИ. (Слововыделялка)  

СТРОКИ. (Слововыделялка)


Страницы: «1» «2»
JD
JD
Посетитель
Сообщения: 5
[Сообщение #1] 11 июня 2011, 18:24
Вот часть программы, которая ищет и выделяет слово.
Проблема в том, что она выделяет первое встретившееся слово.
Как её переделать так, чтобы выделяло все слова, найденные в 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;

Gooddy
Gooddy
3-ий класс
Сообщения: 84
[Сообщение #2] 12 июня 2011, 07:30
В TMemo нельзя выделять несколько слов. Либо пиши свою реализацию компонента либо ищи аналоги с такой функцией.

Чисти код! Чисти код! Чисти код!
JD
JD
Посетитель
Сообщения: 5
[Сообщение #3] 12 июня 2011, 09:23
А, если выделяет только одно слово, можно тогда сделать так, чтобы при втором нажатии btn1 выделило второе слово?

min@y™
min@y™
Доктор наук
Сообщения: 400
[Сообщение #4] 12 июня 2011, 09:25

Цитата (JD):

А, если выделяет только одно слово, можно тогда сделать так, чтобы при втором нажатии btn1 выделило второе слово?

Да, можно. Если вместо функции Pos() юзать PosEx().

Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
JD
JD
Посетитель
Сообщения: 5
[Сообщение #5] 12 июня 2011, 10:47
PosEx() не работает.

min@y™
min@y™
Доктор наук
Сообщения: 400
[Сообщение #6] 12 июня 2011, 13:27

Цитата (JD):

PosEx() не работает.

Лопата тоже не работает, если руки из жопы растут.

Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
bugmenot
bugmenot
3-ий класс
Сообщения: 88
[Сообщение #7] 12 июня 2011, 20:19
http://docwiki.embarcadero.com/CodeExamples/en/FindText_(Delphi)

виконання програми розпочинається з того самого мiсця, де призупинилося.

Gooddy
Gooddy
3-ий класс
Сообщения: 84
[Сообщение #8] 12 июня 2011, 23:18
min@y™: Реакция понятна, но тыкать носом нужно туда, куда насрал.
amigo_28: КАК она не работает?

Чисти код! Чисти код! Чисти код!
JD
JD
Посетитель
Сообщения: 5
[Сообщение #9] 13 июня 2011, 07:49
[Error] Unit1.pas(102): Undeclared identifier: 'PosEx'

min@y™
min@y™
Доктор наук
Сообщения: 400
[Сообщение #10] 13 июня 2011, 10:09

Цитата (JD):

[Error] Unit1.pas(102): Undeclared identifier: 'PosEx'

uses StrUtils;

Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Страницы: «1» «2» (всего страниц: 2, текущая: 1)
Всего сообщений: 12 (сейчас показаны: с 1 по 10)

Перейти в раздел:


 © 2004 - 2017, Delphi.int.ru
Версия форума: 1.10 (19.01.2010)
RSS Delphi.int.ru Expert Код
Выполнено за 0.03 сек.
Обратная связь  
Рейтинг@Mail.ru Majordomo.ru - надёжный хостинг