Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.06;
Скачать: CL | DM;

Вниз

Пролистать 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;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.038 c
6-1101283152
Донской
2004-11-24 10:59
2005.02.06
соединение с mail.ru


1-1106592244
MadGhost
2005-01-24 21:44
2005.02.06
StringGrid как запретить редактирование в определенном столбце?


9-1099585410
MMN
2004-11-04 19:23
2005.02.06
Звуковые и графические файлы


1-1106353912
Zloy SHREK
2005-01-22 03:31
2005.02.06
Как можно выделить слова во всплывающей подсказке жирным шрифтом?


1-1105717065
SpiDeR
2005-01-14 18:37
2005.02.06
parser





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