Главная страница
    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.038 c
3-1104836111
RRA
2005-01-04 13:55
2005.02.06
Отображение данных таблицы через DBGrid


4-1103187490
Павел
2004-12-16 11:58
2005.02.06
WinAPI и IR устройства. Справочник бы...


14-1105905333
Константинов
2005-01-16 22:55
2005.02.06
Обнаружил у себя вирус!


14-1105696258
Семен Сорокин
2005-01-14 12:50
2005.02.06
Где найти тесты (Delphi, MSSQL) для приема на работу.


1-1106218677
Aleksandr.
2005-01-20 13:57
2005.02.06
Кто-нить в Д2005 с отчетами работал?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский