Главная страница
    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.035 c
1-1106384870
lexales
2005-01-22 12:07
2005.02.06
Помогите с INI


1-1106200829
kyn66
2005-01-20 09:00
2005.02.06
Как убрать значек приложения из трея


1-1106271780
Viktop
2005-01-21 04:43
2005.02.06
Кодировка?


9-1099606923
wiz
2004-11-05 01:22
2005.02.06
Rust. Внешний вид игрового GUI


1-1106594353
serg128
2005-01-24 22:19
2005.02.06
Подскажите библиотеку для работы с GIF





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