Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поиск [D2005, XP]


..::KraN::.. ©   (2007-04-20 14:44:00) 

Как сделать поиск в компоненте TMemo?


..::KraN::..   (2007-04-22 20:55:00) [1]

Ну я вызываю его FindDialog1.execute, запускаю программу, ввожу в поле какое-нибудь русское слово а вместо этого другие буквы, с английским языком нормально. может кроме FindDialog1.execute надо ещё что-нибудь делать???


{RASkov}   (2007-04-21 15:07:00) [2]

> [7] ..::KraN::.. ©   (21.04.07 12:55)
> Вот именно что, я пробовал его вызывать, но при вводе в
> поле слова вместо русских букв вылазят какие-то иероглифы.

Не понял, где и что у тебя не так... в самом диалоге русбуквы не отображаются? Приведи код вызова диалога и его OnFind, если что подправим...
Но с "буквами" фик знает....


..::KraN::..   (2007-04-21 12:55:00) [3]


> Натрави на него(Мему) TFindDialog....

Вот именно что, я пробовал его вызывать, но при вводе в поле слова вместо русских букв вылазят какие-то иероглифы.


fd979   (2007-04-20 16:36:00) [4]

     for I := 0 to Memo1.Lines.Count do
     begin
       S1 := UpperCase(Memo1.Lines[I]);
       PosReturn := Pos(UpperCase(edit1.Text), S1);

       if PosReturn <> 0 then {found!}
       begin
         SkipChars := 0;
         for J := 0 to I - 1 do
           SkipChars := SkipChars + Length(Memo1.Lines[J]);
         SkipChars := SkipChars + (I*2);
         SkipChars := SkipChars + PosReturn - 1;
         Memo1.SetFocus;
         Memo1.SelStart := SkipChars;
         Memo1.SelLength := Length(edit1.Text);
         Bool := true;
         Break;
       end;
     end;


Break - можешь не ставить, если хочешь чтобы искало дальше, но надо будет PosReturn присвоить 0 сначала, да и обрабатывать случай когда нашел. А еще лучше после того, как нашел (либо вообще с самого начала) определять на какой строке находится курсор и искать ниже.. Вобщем смотри сам дальше.


{RASkov}   (2007-04-20 15:58:00) [5]

> [4] Германн ©   (20.04.07 15:13)
> И что дальше?

А дальше [1] :)


Германн   (2007-04-20 15:13:00) [6]


> {RASkov}   (20.04.07 15:05) [2]
>
> > [0] ..::KraN::.. ©   (20.04.07 14:44)
>
> Натрави на него(Мему) TFindDialog....
>

И что дальше?


Alexey (AZ)   (2007-04-20 15:06:00) [7]

Memo1.Lines.Find ?


{RASkov}   (2007-04-20 15:05:00) [8]

> [0] ..::KraN::.. ©   (20.04.07 14:44)

Натрави на него(Мему) TFindDialog....


Ega23   (2007-04-20 14:48:00) [9]

Pos + F1


Наверх

Титульная страница Поиск, карта сайта Написать письмо