Форум: "Начинающим";
Текущий архив: 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.02 c