Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];

Вниз

Окно не становиться активным, хотя 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
1-36745
Fast
2003-12-01 23:25
2003.12.12
Drag&Drop


14-36845
iNew
2003-11-19 14:51
2003.12.12
Вопрос по русскому языку.


1-36687
_юзер_
2003-12-02 17:58
2003.12.12
MDI


1-36698
Murad
2003-12-02 12:03
2003.12.12
Размер пикселя на печати


14-36820
Igor_thief
2003-11-19 18:21
2003.12.12
Монитор





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский