Форум: "Начинающим";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];
Внизкак сделать события типа: OnChildFormCreate и OnChildFormDestroy? Найти похожие ветки
← →
kivadim (2006-12-07 17:21) [0]если у главной формы программы FormStyle := fsMDIForm, то можно ли для этой формы создать событие при котором оно происходило когда создаются или уничтожаются дочерние формы?
мне нужно чтоб главная форма реагировала и на дочерние формы не моего производства, например на окна отчетов FastReport, когда они отображаются в режиме MDIChild
с сообщениями почти не имел дело. попробовал сдетать так но не помогло... что не правильно делаю?
type
TfMain = class(TForm)
protected
...
private
...
public
procedure MDICreate(var msg: TWMMDICREATE); message WM_MDICREATE;
procedure MDIDestroy(var msg: TWMMDIDESTROY); message WM_MDIDESTROY;
end;
....
procedure TfMain.MDICreate(var msg: TWMMDICREATE);
begin
MessageBox(Handle,"WM_MDICREATE","",MB_OK);
end;
procedure TfMain.MDIDestroy(var msg: TWMMDIDESTROY);
begin
MessageBox(Handle,"WM_MDIDESTROY","",MB_OK);
end;
← →
Игорь Шевченко © (2006-12-07 17:42) [1]Сообщения надо обрабатывать не у формы, а у окна, handle которого в TForm.ClientHandle
← →
kivadim (2006-12-08 10:27) [2]почитал что можно перехватывать эти сообщения можно...
Родительская MDI-форма создаёт специфическое окно класса MDICLIENT (дескриптор этого окна хранится в свойстве ClientHandle). И WM_MDICreate посылается именно этому клиентскому окну, а не самой форме. Перехватить это сообщение можно, например, через Application.OnMessage - так перехватываются всё сообщения, кроме WM_Quit.
никто не подскажет как именно это реализовать, а то я не догоняю?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.029 c