I had the following in my program's main form:
The problem was that, if the user never clicked "Yes" or "No", it never closed. I wanted to put a timer on the MessageDlg so that after some time, it closed anyway. The question was "How?" and I started to post it here, did a google search (so not to get flamed) but found nothing helpful. So, decided to try something before posting my question. Well, to my surprise it worked!
Here's my solution for anyone who may be posed with the same dilemma:
Hope you find it useful!
Roo
Delphi Rules!
Code:
procedure TManagerMenu.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose:= MessageDlg('Exit Manager Menu?', mtConfirmation, [mbYes, mbNo], 0) = mrYes
end;
Here's my solution for anyone who may be posed with the same dilemma:
Code:
procedure TManagerMenu.Timer1Timer(Sender: TObject);
begin
TimesUp:= true;
PostMessage(Handle, wm_Close, 0, 0)
end;
procedure TManagerMenu.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var isDone: boolean;
begin
if not TimesUp then begin
Timer1.Enabled:= true;
isDone:= MessageDlg('Exit DataEase emulator?', mtConfirmation, [mbYes, mbNo], 0) = mrYes;
Timer1.Enabled:= false;
CanClose:= isDone or TimesUp;
end else
CanClose:= true
end;
Roo
Delphi Rules!