안녕하십니까.
여기서 항상 많이 배우고 있습니다.
도저히 방법을 모르겠어서 글 올립니다.
폼 생성을 할면서 formactivate 이벤트에서 한 조건식을 수행하고 조건 불일치의 경우 그냥 폼을 종료(formclose)하고 싶습니다.
다음과 같이 했는데 폼 종료가 안됩니다.
procedure TfHamoduIN.FormActivate(Sender: TObject);
var
(생략)
begin
(생략)
if (FileExists(FdSet) = False) then
begin
Application.MessageBox('에러메시지', SysErrID, MB_OK);
close; //폼 종료를 위해 formclose이벤트를 발생시키고 싶었습니다.
end
else
begin
(생략)
end;
end;
====================
폼 생성중에(또는 activate중에) close를 하려고 해서 안되는 걸까요?
그렇다면 어떤 방법으로 생성중에(activate중에) formclose를 할 수 있을까요?
도움 부탁드립니다. :)
hsr//////////////////////////////////////////////////////
자기폼 죽이기는 2가지를해보세요.
일단 호출된 폼Form2의 FormClose과 FormDestroy이벤트에 아래 코딩을하시구요
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TForm2.FormDestroy(Sender: TObject);
begin
Form2 := nil;
end;
두번째는 Form1이 Form2를 show로 띄웠다면 그냥 close하시면 되구요
ShowModal로 띄웠다면 PostMessage(self.handle, WM_CLOSE, 0, 0);을 사용해보세요