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

Вниз

как мне найти нужное слово?   Найти похожие ветки 

 
фелина   (2005-09-01 22:03) [0]

как мне найти нужное слово на RichEdit1 c помошью FontDialog?
помагите мальчики,очень нужна!!!


 
Кефир87 ©   (2005-09-01 22:08) [1]

ммм... никак. У этого диалога другое применение. Речь наверно о FindDialog"е. На счет него не знаю 8(


 
Германн ©   (2005-09-01 22:42) [2]

С помощью TFindDialog пользователь может указать что искать, где искать, как искать и т.п. А уж сам поиск в RichEdit придется делать самой. :(
Например Pos(FindDialog.FindText, RichEdit1.Text)


 
фелина   (2005-09-01 23:06) [3]

ой ой,извеняюсь :) FindDialog хотела сказать


 
Наиль ©   (2005-09-01 23:27) [4]

Дополню [2].
После нахождения нужно поставить курсор в нужное с SelStart и выделить найденый фрагмент SelLength:=Length(FindDialog.FindText).
А для поиска лучше использовать PosEx.


 
фелина   (2005-09-01 23:55) [5]

вот нашла на инете кое что,но не находит ничего :( ошыбка тоже не вылетает. вчом может быть проблема?

var
 SPos: Integer;
procedure TForm1.FindDialog1Find(Sender: TObject);
begin
 with FindDialog1 do
 begin
   if frMatchCase in Options then { Поиск с учётом регистра }
     RichEdit1.SelStart := Pos(FindText, Copy(RichEdit1.Lines.Text, SPos + 1,
                               Length(RichEdit1.Lines.Text))) + SPos - 1
   else { Поиск без учёта регистра }
     RichEdit1.SelStart := Pos(AnsiLowerCase(FindText),
                               AnsiLowerCase(Copy(RichEdit1.Lines.Text, SPos
+ 1, Length(RichEdit1.Lines.Text)))) +
                               SPos - 1;
   if RichEdit1.SelStart >= SPos then
   begin
     RichEdit1.SelLength := Length(FindText);  { Выделение найденного текста
}
     SPos := RichEdit1.SelStart + RichEdit1.SelLength + 1;  { Изменение начальной
позиции поиска }
   end
   else
     if MessageDlg("Текст "" + FindText + "" не найден. Продолжать диалог?",
                   mtConfirmation, mbYesNoCancel, 0) <> mrYes then
       CloseDialog;
 end;
 RichEdit1.SetFocus;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
 SPos := RichEdit1.SelStart;  { Запоминание позиции курсора }
 with FindDialog1 do
 begin
   FindText := RichEdit1.SelText;  { Начальное значение текста поиска - текст,
выделенный в RichEdit }
   Position := Point(Form1.Left, Form1.Top + RichEdit1.Top + RichEdit1.Height);
{ Позиционирование окна диалога внизу RichEdit }
   Options := Options + [frHideUpDown, frHideWholeWord];  { Удаление из диалога
кнопок "Вверх", "Вниз", "Только слово целиком" }
   Execute;  { Выполнение }
 end;
end;


 
Германн ©   (2005-09-02 00:54) [6]

Мельком взглянув, явных ошибок не увидел. Только явную глупость при присвоении RichEdit1.SelStart значения без анализа результата функции Pos.

Пройдись дебаггером по этим двум методам. Останавлтваясь на каждой строке проверяй значения переменных SPos, SelStart, FindText. Это поможет найти причину не работы.


 
фелина   (2005-09-02 01:07) [7]

я твоих советы ценю. но дело в том что я не справилась... вот поэтому и обратилась к вам.


 
Германн ©   (2005-09-02 01:48) [8]

2 фелина   (02.09.05 01:07) [7]
Спасибо, конечно, за комплимент, но после фелина   (01.09.05 23:55) [5] помочь себе можешь только ты сама. Использовав режим отладки (дебаггер). А уж если там возникнут новые вопросы, тогда поможем.

Еще одно. То, что было в фелина   (01.09.05 23:55) [5] ты нашла в Инете. А что ты сама реально пробовала, что не работало? Приведи свой код, который ты пробовала.


 
Fay ©   (2005-09-03 03:15) [9]

2 фелина   (01.09.05 22:03)
EM_FINDTEXT ?



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

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

Наверх





Память: 0.47 MB
Время: 0.013 c
1-1126774221
CaptainAlex
2005-09-15 12:50
2005.10.09
Хранение пароля


8-1116437553
aleman
2005-05-18 21:32
2005.10.09
Кусочки в память+play


1-1126875099
webpauk
2005-09-16 16:51
2005.10.09
Определение property


14-1127145267
ArtemESC
2005-09-19 19:54
2005.10.09
Во время работы


14-1127306450
Антоний
2005-09-21 16:40
2005.10.09
Завершение lsass.exe





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