主窗体的OnClose事件: procedure TfmMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin if messagedlg('真的要退出系统吗?',mtconfirmation,[mbYes,mbNo],0)=mrNo then canclose:=false; end;主窗体的“关闭”按钮的Click事件: procedure TfmMainForm.SpeedButton1Click(Sender: TObject); begin Close; end; 错误对话框:Project Project1.exe raised exception Class EAccessViolation with message 'Access Violation at address 74DB0CC2.Read of Address 4DB0CC2.Process stopped.Use Step Or Run to Countinue.
类似这样调用窗体: procedure TfmMainForm.miAbourClick(Sender: TObject); begin fmMainForm.Hide; fmAbout.Show; end;
每次寫的CLOSE就可以,那不可以的時候你寫的是什麼??
begin
Close;
end;
点击了主窗体的关闭按钮后,主窗体会关闭,然后跳出一个错误对话框,有个调试按钮和关闭按钮,需要按N回关闭才能把那个错误对话框关了。不知道是怎么回事
procedure TfmMainForm.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
if messagedlg('真的要退出系统吗?',mtconfirmation,[mbYes,mbNo],0)=mrNo then
canclose:=false;
end;主窗体的“关闭”按钮的Click事件:
procedure TfmMainForm.SpeedButton1Click(Sender: TObject);
begin
Close;
end;
错误对话框:Project Project1.exe raised exception Class EAccessViolation with message 'Access Violation at address 74DB0CC2.Read of Address 4DB0CC2.Process stopped.Use Step Or Run to Countinue.
procedure TfmMainForm.miAbourClick(Sender: TObject);
begin
fmMainForm.Hide;
fmAbout.Show;
end;
1. 如果是這樣的來做的,你的所有窗體都是自動新增的吧?不是動態創建的吧?2. 這些自動創建的窗體上你增加了什麼第三方的控件沒有??3. 還有主窗體的 onCloseQuery 你寫了詢問代碼。 onclose 有沒有寫??