main 폼이 있고 이 폼에서 여러개의 폼을 띄울 수 있습니다.
모달로 띄우지는 않구요.
띄워진 Child Form들이 종료 될 때 해당 종료되는 폼에 따라
main form 에서 작업을 하려하는데 Child Form이 종료되는 시점을
어떻게 알아내야 할 지 모르겠습니다.
단순히 Child form의 close 이벤트에서 변수값으로 main에 보내준다던지 등으로 처리를 하면 쉽게 되겠지만 사정상 이방법은 힘들고,
순수히 main 폼에서 child 폼의 종료 시 알아 낼수 있는 방법이 없을까요?
메세지를 이용하면 될것도 같긴한데, 어떤방법이던
아시는분 자세히 좀 부탁드립니다.
참, 폼 종료시 발생하는 메세지 혹시 아시면 같이 부탁드립니다.
WM_CLOSE는 폼을 종료시키도록 SendMessage로 작동은 되지만
실제 폼 종료시 발생하는 메세지는 아닌것 같더군요.
제가 잘못알고 있는 것인지.
부탁드립니다.
좋은밤 되시길.. ^^
저도 Child폼 종료시 Main폼에게 이를 알려야할 필요가 있어서 고민하다가
메시지를 이용한 방법을 사용하고 있습니다.
전역으로 Main폼의 핸들값을 저장할변수 g_hMainForm을 선언하고
MainForm의 핸들값을 저장한 다음, 공유 unit에서
const
WM_CHILD_FORM_CLOSED = WM_USER+1234; 와 같이 정의.
Child의 OnFormClose에서
SendMessage(g_hMainForm, WM_CHILD_FORM_CLOSED, 0, "Child폼 종료!");
Main폼에서
TMainForm = class(TForm)
...
private
procedure WMChildFormClosed(var Message: TMessage); message WM_CHILD_FORM_CLOSED;
...
procedure WMChildFormClosed(var Message: TMessage);
begin
showmessage(PChar(Message.lParam));
end;
그럼 즐프하세요~
p.s 다른 좋은 방법 있으신 분들 좀 알려주세요..^^