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

Вниз

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

 
фелина   (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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
2-1125237004
Станислав
2005-08-28 17:50
2005.10.09
окно


2-1125124870
Intelligent[neo]
2005-08-27 10:41
2005.10.09
Фотографии из БД через Delphi


3-1124692952
Max4
2005-08-22 10:42
2005.10.09
кавычки в запросе.


3-1125062670
syte_ser78
2005-08-26 17:24
2005.10.09
Подключение к базе Paradox


4-1123618070
LeoTon
2005-08-10 00:07
2005.10.09
Перехват системной отрисовки тени в WinXP/2k