EventHandler에서 Default 동작을 수행하지 않으려면..?
System Menu에서 X로 표시된 버튼을 누르면 User에서 물어본다면 해당
Form을 끝낼것이가 그렇지 않을 것인가 판단을 하고 싶습니다.
아래 코드처럼 작성을 하였느데... compile error가 발생합니다.
procedure TfrmMain.FormHide(Sender: TObject);
var
result: Word;
begin
result := MessageDlg('종료?', mtConfirmation,[mbYes, mbNo], 0);
if result = mrYes then
halt(0);
// frmMain.visible := true;
end;
frmMain.visible := true라는 부분에서 error발생됩니다.
error는 visible을 수정하는 Handler에서 user program에서 변경할 수가 없다고
하네요. 고수님의 한수를 부탁드립니다.
미리 감사드리며...
> System Menu에서 X로 표시된 버튼을 누르면 User에서 물어본다면 해당
> Form을 끝낼것이가 그렇지 않을 것인가 판단을 하고 싶습니다.
> 아래 코드처럼 작성을 하였느데... compile error가 발생합니다.
>
> procedure TfrmMain.FormHide(Sender: TObject);
> var
> result: Word;
> begin
> result := MessageDlg('종료?', mtConfirmation,[mbYes, mbNo], 0);
> if result = mrYes then
> halt(0);
> // frmMain.visible := true;
> end;
>
> frmMain.visible := true라는 부분에서 error발생됩니다.
> error는 visible을 수정하는 Handler에서 user program에서 변경할 수가 없다고
> 하네요. 고수님의 한수를 부탁드립니다.
>
> 미리 감사드리며...
>
>
안녕하세요..
프로그램 종료시 사용자에게 물어보고 종료한다는 얘기인가요?
Form 이벤트중에
FormCloseQuery(Sender: TObject; var CanClose: Boolean) 이벤트를
사용하세요..
canclose가 true이면 종료됩니다.
**
if MessageDlg(' 프로그램을 끝내겠습니까?,
mtCustom, [mbYes, mbNo], 0) = mrYes then
canclose := true
질문에 대한 답변이 정확했는지 모르겠네요..그럼.