Поиск в SynMemo

Модератор: Модераторы

Поиск в SynMemo

Сообщение Alex_Gordon1 » 12.02.2011 15:01:22

Собвственно сабж. Как организовать поиск в syn memo?
Alex_Gordon1
новенький
 
Сообщения: 18
Зарегистрирован: 09.02.2011 20:41:12

Re: Поиск в SynMemo

Сообщение Padre_Mortius » 12.02.2011 17:39:16

Поиск по форуму рулит. Буквально недавно рассматривалась возможность поиска и замены строк в компоненте TMemo. Принцип аналогичный
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Поиск в SynMemo

Сообщение Alex_Gordon1 » 12.02.2011 18:06:04

Проблема в том, что там нет SelLength. Проблем бы никаких не было, будь он там.
Alex_Gordon1
новенький
 
Сообщения: 18
Зарегистрирован: 09.02.2011 20:41:12

Re: Поиск в SynMemo

Сообщение Maxizar » 12.02.2011 19:08:42

Alex_Gordon1 писал(а):Проблема в том, что там нет SelLength. Проблем бы никаких не было, будь он там.

Есть такие св-ва:
SelStart:Integer; - Содержит индекс(номер буквы) начала выделения.
SelEnd:Integer; - -/- конца выделения.
SelText:String - содержит выделенный текст.

=>SelLength=SelEnd-SelStart;
Maxizar
постоялец
 
Сообщения: 385
Зарегистрирован: 20.03.2010 19:48:14

Re: Поиск в SynMemo

Сообщение Alex_Gordon1 » 12.02.2011 20:19:43

Вот код для поиска:
find:=Edit1.Text;
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;

Как тут использовать свойства?
Alex_Gordon1
новенький
 
Сообщения: 18
Зарегистрирован: 09.02.2011 20:41:12

Re: Поиск в SynMemo

Сообщение Maxizar » 12.02.2011 21:32:42

Эх.. нет мммм. ну..... ладно :(
1. Любой код если он больше 2-3 строк, стоит заключать в тэг [cоde]Код [/code]
2. Прочтите книгу по делфи (любую)
3. Я сам ненавижу когда говорят, мол типа погугли, поиск рулит... и т.п. Но вы моглибы хотябы попытатся написать хоть что-то, и уже в этом коде будут непонятки, которые мы бы вам объяснили.
4. учитывая п. 3. Отвечаю (хотя в целях воспитания не должен был)
Ответ:
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
var FIndex:Integer;
begin
  FIndex:=Pos(Edit1.Text,SynMemo1.Text);

  if FIndex<>0 then
   begin
    SynMemo1.SelStart:=FIndex;
    SynMemo1.SelEnd:=FIndex+Length(Edit1.Text);
   end;
end; 


Так же прикладываю исходник:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Maxizar
постоялец
 
Сообщения: 385
Зарегистрирован: 20.03.2010 19:48:14

Re: Поиск в SynMemo

Сообщение Alex_Gordon1 » 12.02.2011 21:50:36

Вообще-то если я обращаюсь на этот форум, я пробовал писать хоть что-то до этого, и ни один способ не помог.
Ваш помог, спасибо.
Alex_Gordon1
новенький
 
Сообщения: 18
Зарегистрирован: 09.02.2011 20:41:12


Вернуться в SynEdit и UniHighlighter

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Рейтинг@Mail.ru