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

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

Пролистать memo [D7, WinXP]


sardox ©   (2005-01-21 11:31:00) 

как пролистать мемо до определенного слова. пример. есть текст. в нем где то в середине есть слово "Нужное слово". И мне нужно пролистнуть весь текст до этого слова. как можно сделать?
если не понятно - то еще пример - нажмите в браузере контр+F. появится меню поиска. наберите что нить. нажмите поиск. и у вас страница прокрутится до искомого слова. жду ответа


PZ   (2005-01-22 17:17:00) [1]

Но этот код гораздо сложнее, а результат тот же.


sardox   (2005-01-22 16:41:00) [2]

вообщем сенкс всем, но я уже нашел:
сначала циклом пробиваешь и находишь первую букву слова,её номер,потом сравниваешь последнюю и предпоследнюю, .
memo1.Perform(WM_VSCROLL, memo1.Perform(EM_LINEfromchar,number,0)*65536+SB_THUMBPOSITION,0); // а это перелистывает
вот весб код

procedure TForm1.ListBox1Click(Sender: TObject);
var
 txt,mem: string;
 res ,number,number2:integer;
begin
edit1.Text := txt; //нужное слово
mem:=memo1.Text; //наш текст
for number:=1 to memo1.gettextlen do //ищется слово txt
begin
   if txt[1] =   mem[number] then  //сравнение 1 символа
         begin
                if txt[edit1.GetTextLen] = mem[number + edit1.GetTextLen - 1] then if txt[edit1.GetTextLen-1] = mem[number + edit1.GetTextLen - 2]  then //сравнение последнего и предпоследнего
                      begin
                      memo1.Perform(WM_VSCROLL, memo1.Perform(EM_LINEfromchar,number,0)*65536+SB_THUMBPOSITION,0);
                      break;
                    end;
         end;//1
   begin
                 
end;
end;


Aleks   (2005-01-21 21:31:00) [3]

можно и так (Будет искать слова не зависимо от регистра букв).
Var
I, P : Integer;
S1 : String;
begin
S1 := 'нужное слово';
P:= Pos(AnsiUpperCase(S1),AnsiUpperCase(Memo1.Lines[0]));
ShowMessage('Позиция в строке    '+(inttostr(p)));
end;


PZ   (2005-01-21 19:18:00) [4]

procedure TForm1.Button2Click(Sender: TObject);
Var
 I, P : Integer;
 S : String;
begin
 S := 'Нужное слово';
 P := Pos(S, Memo1.Text);
 Memo1.SelStart := P;
 Memo1.SelLength := Length(S);
end;


Palladin   (2005-01-21 18:57:00) [5]


> [1] Neznaika ©   (21.01.05 15:17)

Ага... эти методы очень помогают найти слово... просим юзера выделить это слово и тут же находим...


BFG9k   (2005-01-21 17:31:00) [6]

Функция Pos+F1


Neznaika   (2005-01-21 15:17:00) [7]

Найти в мемо нужное слово :)-<-<

Возможно тебе поможет
SelLength + F1
SelStart + F1


Наверх

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