【发布时间】:2018-02-21 07:23:18
【问题描述】:
我在 VCL 中开发了一个使用 VCL 主题的应用程序。此应用程序需要 TPageControl 和内部(子)表单。
每个子窗体在OnClose中都有相同的方式:Parent.Destroy;
MsgResp := MessageDlg('Closing info....', mtWarning, [mbYes, mbNo, mbCancel], 0);
case MsgResp of
mrYes:
begin
DoSomething; {Save something}
Parent.Destroy;
end;
mrNo:
begin
Parent.Destroy;
end;
mrCancel:
begin
Exit;
end;
end;
如果我为 Sapphire Kamri(或其他)之类的应用程序设置主题,我会在销毁父组件时遇到访问冲突错误。但是如果我使用默认样式(Windows),这段代码可以正常工作。
【问题讨论】:
-
顺便说一句,我们很少在
Self以外的对象上调用Destroy。相反,我们使用Free,它首先检查主题是否不是nil。
标签: delphi vcl vcl-styles