프로그램 종료 시 모든 폼 OnClose 이벤트 발생시키기
보통 프로그램을 작성할 때에 Form의 OnClose 이벤트에서
관련 자원을 해제하는 코드를 넣는다.
그런데 Form의 OnClose 이벤트가 발생하지 않는 경우가 있다.
그래서 프로그램이 종료할 때 가끔 Access Violation Error가 나는 경우가 있다.
다음과 같은 코드를 삽입하면 프로그램이 종료될 때
관련 폼의 모든 OnClose 이벤트를 발생시킨다.
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3};
{$R *.RES}
procedure CloseAllForm;
var
i: Integer;
Form: TForm;
begin
for i := 0 to Application.ComponentCount - 1 do
begin
if Application.Components[i] is TForm then
begin
Form := Application.Components[i] as TForm;
Form.Close;
end;
end;
end;
begin
Application.Initialize; Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.Run; CloseAllForm; // 프로그램 종료할 때 요넘을 호출해 준다.
end.
'Delphi Tip > +Tip' 카테고리의 다른 글
dfm 직접 폼디자인 변경 (0) | 2024.07.01 |
---|---|
폼 미러링 (Form Mirroring) (0) | 2024.06.17 |
메세지 다이어그램(Message Dialog) 체크박스(CheckBox) 추가 (0) | 2024.06.06 |
키보드 키입력 막기 - 화면 캡처 방지(Blocking Screen Capture) (0) | 2024.05.29 |
ShowModal,DialogBox,ShowMessage 등 떠 있을 때 폼 Disable 막기 (0) | 2024.05.21 |
댓글