程序点击推出按钮时 ,弹出确认的 MessageDlg,但有时就会发生异常, 弹出个异常地址不出现确认的信息框。
查看异常信息, 发现是在 Classes.pas 里的Notification函数里。
procedure TComponent.Notification(AComponent: TComponent;
Operation: TOperation);
var
I: Integer;
begin
if (Operation = opRemove) and (AComponent <> nil) then
RemoveFreeNotification(AComponent);
if FComponents <> nil then
begin
I := FComponents.Count - 1;
while I >= 0 do
begin
TComponent(FComponents[I]).Notification(AComponent, Operation); //这一行。
Dec(I);
if I >= FComponents.Count then
I := FComponents.Count - 1;
end;
end;
end;
不知大家有什么建议??
begin if not FExited then begin
if MessageDlg( '您将退出当前程序,您是否确认退出?(Y/N)', mtConfirmation,
[mbYes,mbNo], 0,mbYes) = mrYES then begin
FExited := TRUE;
end;
end;
CanClose := FExited;
end;
是在 closequery里做的, 这会儿还没正式开始释放东西呢!!
我只是显示 MEssageDlg 发现地址错误,查到是执行到这行代码附近报错的。