Поиск в SynMemo
Модератор: Модераторы
-
Alex_Gordon1
- новенький
- Сообщения: 18
- Зарегистрирован: 09.02.2011 19:41:12
Поиск в SynMemo
Собвственно сабж. Как организовать поиск в syn memo?
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
Поиск по форуму рулит. Буквально недавно рассматривалась возможность поиска и замены строк в компоненте TMemo. Принцип аналогичный
-
Alex_Gordon1
- новенький
- Сообщения: 18
- Зарегистрирован: 09.02.2011 19:41:12
Проблема в том, что там нет SelLength. Проблем бы никаких не было, будь он там.
Alex_Gordon1 писал(а):Проблема в том, что там нет SelLength. Проблем бы никаких не было, будь он там.
Есть такие св-ва:
SelStart:Integer; - Содержит индекс(номер буквы) начала выделения.
SelEnd:Integer; - -/- конца выделения.
SelText:String - содержит выделенный текст.
=>SelLength=SelEnd-SelStart;
-
Alex_Gordon1
- новенький
- Сообщения: 18
- Зарегистрирован: 09.02.2011 19:41:12
Вот код для поиска:
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;
Как тут использовать свойства?
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;
Как тут использовать свойства?
Эх.. нет мммм. ну..... ладно
1. Любой код если он больше 2-3 строк, стоит заключать в тэг [cоde]Код [/code]
2. Прочтите книгу по делфи (любую)
3. Я сам ненавижу когда говорят, мол типа погугли, поиск рулит... и т.п. Но вы моглибы хотябы попытатся написать хоть что-то, и уже в этом коде будут непонятки, которые мы бы вам объяснили.
4. учитывая п. 3. Отвечаю (хотя в целях воспитания не должен был)
Ответ:
Так же прикладываю исходник:
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;
Так же прикладываю исходник:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
Alex_Gordon1
- новенький
- Сообщения: 18
- Зарегистрирован: 09.02.2011 19:41:12
Вообще-то если я обращаюсь на этот форум, я пробовал писать хоть что-то до этого, и ни один способ не помог.
Ваш помог, спасибо.
Ваш помог, спасибо.
