IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Findtext, Не втыкаю!
сообщение
Сообщение #1


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


Короче пишу я текст. редактор, используя TRichEdit. Кинул на форму Файнд диалог и пытаюсь найти нужное слово вот таким способом:

procedure TForm1.N12Click(Sender: TObject);
begin
FindDialog1.Execute;
end;
////////////////////////////////
procedure TForm1.FindDialog1Find(Sender: TObject);
var
T: TSearchTypes;
Int: Integer;
begin
Int := 1;
Editor.FindText(FindDialog1.FindText, FindDialog1.Position.X, Int, T);
end;


В том дело, что переменной TSearchTypes нужно присвоить определенное значение, НО КАК? Конечно может кто знает, подскажите пожалуйста!
Пробовал запрос в Delphi Help, вот чё пишет:

type
TSearchType = (stWholeWord, stMatchCase);
TSearchTypes = set of TSearchType;
function FindText(const SearchStr: string; StartPos, Length: Integer; Options: TSearchTypes): Integer;

Вообщем голову поломал долго!


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Editor.FindText(FindDialog1.FindText, FindDialog1.Position.X, Int, [stWholeWord]);

Можешь установить другие сочетания для Options:
[stWholeWord, stMatchCase]

или
[]

(значит, ни одной опции не передаешь)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


Спасибо!


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


Блин, никак не могу понять, как использовать FindDialog! Вот допустим есть форма, на которой лежит РичЭдитор и сам файнд. Как заставить этот файнд искать текст по эдитору. Если можно, дайте готовый проект. Заранее благодарен! wacko.gif


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






А чем, собственно, тебя пример из Help-а по FindDialog не устраивает?

procedure TForm1.Button1Click(Sender: TObject);
begin
FindDialog1.Execute; // <--- Запускаешь FindDialog
end;

procedure TForm1.FindDialog1Find(Sender: TObject);
var
FoundAt: LongInt;
StartPos, ToEnd: Integer;

begin
with RichEdit1 do begin
if SelLength <> 0 then
StartPos := SelStart + SelLength
else
StartPos := 0;

ToEnd := Length(Text) - StartPos;
FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, [stMatchCase]);
if FoundAt <> -1 then begin
SetFocus;
SelStart := FoundAt;
SelLength := Length(FindDialog1.FindText);
Perform(EM_SCROLLCARET, 0, 0); { Это было добавлено, чтобы RichEdit прокручивался }
end;
end;

end;
? Все вроде работает...
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 24.11.2020 0:21
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name