Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Вниз

Пролистать memo   Найти похожие ветки 

 
sardox   (2005-01-21 11:31) [0]

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


 
Neznaika ©   (2005-01-21 15:17) [1]

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

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


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

Функция Pos+F1


 
Palladin ©   (2005-01-21 18:57) [3]


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

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


 
PZ   (2005-01-21 19:18) [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;


 
Aleks   (2005-01-21 21:31) [5]

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


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

вообщем сенкс всем, но я уже нашел:
сначала циклом пробиваешь и находишь первую букву слова,её номер,потом сравниваешь последнюю и предпоследнюю, .
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;


 
PZ   (2005-01-22 17:17) [7]

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



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.032 c
1-1106304543
Женя_
2005-01-21 13:49
2005.02.06
Подскажите


3-1104919422
P.N.P.
2005-01-05 13:03
2005.02.06
Firebird 1.5 - получить список Alias-ов


1-1105224751
Enabled
2005-01-09 01:52
2005.02.06
Как получить TShiftState который в OnMouseDown используется ?


1-1106377014
ODINUS
2005-01-22 09:56
2005.02.06
Альтернатива RAVE


3-1105304363
Windows_3000
2005-01-09 23:59
2005.02.06
работа с DBF





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский