![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать, чтобы FindDialog закрывался при нажатии на Escepe ? [D7, WinME]
Алекс А © (2004-06-10 01:24:00)Или нет ли где нибудь более продвинутого файнд-диалога ?
Алекс А (2004-06-13 01:38:00) [1]
> KilkennyCat © (13.06.04 01:12) [12]
> Зачем искать? переделайте этот.
Нехочу прослыть изобретателем велосипедов.
KilkennyCat (2004-06-13 01:12:00) [2]Зачем искать? переделайте этот.
Алекс А (2004-06-13 01:10:00) [3]
> KilkennyCat © (12.06.04 02:13) [10]
> Методом наоборот.
> Если событие onClose не вызывалось после открытия - можно
> считать окно отрытым. Если главная форма (компоненты на
> ней) имеют фокус - значит оно не активно.
Всё равно какой-то этот ФайндДиалог недоделанный. Надо было прописать все эти свойства в него самого, чтобы без трюков всяких обходиться. И другие тоже надо было прописать.
Например у него нету свойств Width и Height. Это же бред ! Как его отцентрировать без этих свойств ?
В общем ищу какой-нибудь более продвинутый диалог.
KilkennyCat (2004-06-12 02:13:00) [4]Методом наоборот.
Если событие onClose не вызывалось после открытия - можно считать окно отрытым. Если главная форма (компоненты на ней) имеют фокус - значит оно не активно.
Алекс А (2004-06-12 01:18:00) [5]
> NAlexey © (11.06.04 08:24) [8]
> Переопредели у формы IsShortCut. В котором проверяй, если
> активно окно диалога, то не вызывать ShortCut.
Спасибо !
Сделал вот так :
procedure TForm1.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
begin
if Msg.CharCode = VK_ESCAPE then FindDialog1.CloseDialog;
end;
Хотел ещё сделать проверку активности окна диалога, но не понял как. У него нет ни свойства isShow, ни isActive. Как это можно сделтаь ?
NAlexey (2004-06-11 08:24:00) [6]Переопредели у формы IsShortCut. В котором проверяй, если активно окно диалога, то не вызывать ShortCut.
Алекс А (2004-06-11 07:12:00) [7]Кто нибудь знает, как убрать из ShortCut'а, то, что в нём установлено ? Что туда надо заслать ? На nil пишет ошибку.
Думкин (2004-06-11 06:56:00) [8]> Алекс А (11.06.04 03:13) [5]
А как ты думаешь? У тебя два действия хотят иметь одну горячую - так хорошо?
Или саночки или ехать.
И ИМХО конечно садить шорткаты и т.п к меню напрямую нехорошо - TAction пользуй.
Алекс А (2004-06-11 03:13:00) [9]
> Anatoly Podgoretsky © (10.06.04 09:15) [4]
> Алекс А (10.06.04 03:50) [2]
> Вопрос неправильный, как тебе удалось добиться противоположного.
Я понял в чём дело. Я использую в быстрых клавишах одной из опций меню кнопку ESC
N28.ShortCut := Word(27);
И из за этого ФайндДиалог не закрывается. Как можно на время это отключить ? Или как тут выкрутиться вообще ?
Anatoly Podgoretsky (2004-06-10 09:15:00) [10]Алекс А (10.06.04 03:50) [2]
Вопрос неправильный, как тебе удалось добиться противоположного.
KilkennyCat (2004-06-10 03:53:00) [11]Никак. Кинул его на форму. Кинул на форму кнопку. Написал по кнопке FindDialog1.Execute Нажал кнопку. Финд открылся. Нажал Esc - закрылся.
Алекс А (2004-06-10 03:50:00) [12]
> KilkennyCat © (10.06.04 02:08) [1]
> а у меня он и так закрывается по Esc. D6 win2000
А как тебе удалось этого добиться?
KilkennyCat (2004-06-10 02:08:00) [13]а у меня он и так закрывается по Esc. D6 win2000