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

Вниз

Окно не становиться активным, хотя Caption синий   Найти похожие ветки 

 
mRodion ©   (2003-12-02 15:17) [0]

В своем приложении открываю еще одно окно, после закрытия которого, основное окно остается неактивным (ввод с клавиатуры не работает, событие OnActive не срабатывает).
Как избавиться от этого?

Хочу, чтобы после закрытия окна, главному возвращался фокус.


 
Clift ©   (2003-12-02 15:24) [1]

как закрываеш окно?


 
k-man ©   (2003-12-02 16:07) [2]

ShowModal делаешь, да?
А потом когда окно отработало видимо form.hide; Верно?
Попробуй лучше сделать form.Close


 
mRodion ©   (2003-12-02 16:11) [3]

Открываю окно по .Show.
Но это не простое окно, оно имеет свою кнопку на TaskBar"е.
Закрывает окно пользователь (в OnClose caFree).


 
k-man ©   (2003-12-02 16:22) [4]

Давай код подробнее...
А то окно то "не простое" :)


 
mRodion ©   (2003-12-02 16:30) [5]

Есть MDI-приложение.
Главная форма (контейнер) и много дочерних. Все стандартно.
Из дочерней формы вызывается другая форма:
var
fe :TFmEditing;
begin
fe := TfmEditing.Create (self);
fe.Show;
end;


В форме TFmEditing переопределн метод CreateParams:
procedure CreateParams(var Params: TCreateParams); override;
procedure TfmEditing.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
if ParentWindow=0 then Params.WndParent := GetDesktopWindow;
end;


а также задан обработчик события OnClose
procedure TfmEditing.FormClose(Sender: TObject; var Action: TCloseAction);
begin
edProtocolNumberExit (self);
AskSavePicture;
if (FCloseOnExit = true) then Action := caFree
else Action := caHide;
end;


 
mRodion ©   (2003-12-02 16:32) [6]

FCloseOnExit в данном случае всегда true.
(только не спрашивайте, зачем я так условие написал)


 
mRodion ©   (2003-12-02 16:52) [7]

В форме TfmEditing убрал оверрайды CreateParams.
Теперь окно не имеет свою кнопку на TaskBar"е. Но эффект остался.
Есть какие-нибудь предложения?


 
mRodion ©   (2003-12-02 17:42) [8]

Решил проблему.
В обработчик OnClose закрывающейся формы TfmEditing
Прописал строчку:
endMessage (Application.MainForm.Handle,WM_SETFOCUS, 0, 0);
И все ОК



Страницы: 1 вся ветка

Текущий архив: 2003.12.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
7-36860
StasVashuk
2003-10-06 16:40
2003.12.12
Вопрос о модулях.


1-36628
man
2003-12-01 10:53
2003.12.12
установка real


7-36866
KIE
2003-10-06 12:19
2003.12.12
Как мне получить изображение с ...


14-36848
oleg111
2003-11-20 13:59
2003.12.12
помогите найти TExpression


14-36824
FoxPro
2003-11-19 13:34
2003.12.12
Вопрос по поводу FoxPro