Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать, чтобы 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо