我的应用程序(在Delphi 7上编写)在Windows XP SP3上正常运行,但是当我尝试在Windows 7上运行它时会发生以下异常:
EInvalidOperation,消息"无效的ImageList"
这是主要的应用程序代码:
Application.Initialize;
tmpSplash.GoNextMsg;
Application.CreateForm(TdmImages, dmImages);
tmpSplash.GoNextMsg; // Collegamento database
Application.CreateForm(TdmCharter, dmCharter);
tmpSplash.GoNextMsg; // Caricamento immagini
Application.CreateForm(TfrMain, frMain);
tmpSplash.GoNextMsg; // init: Anagrafica
frameAnagrafica := TframeAnagrafica.Create(Application);
tmpSplash.GoNextMsg; // init: Flotta
frameFlotta := TframeFlotta.Create(Application);
//Application.CreateForm(TframeFlotta, frameFlotta);
...
...
模块dmImages已正确创建,例如frMain,但是何时 将创建对象frameAnagrafica,然后在构造函数方法上引发异常:
type
TframeAnagrafica = class(TMyCustomFrame)
...
...
{$R *.dfm}
constructor TframeAnagrafica.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
end;
"超级班" TframeAnagrafica:
TMyCustomFrame = class(TFrame)
...
...
{$R *.dfm}
constructor TMyCustomFrame.Create(AOwner: TComponent);
begin
inherited Create(AOwner); <-- Exception here
end;
在Windows XP中没问题,但是使用Windows 7会出现问题。 我该如何解决这个问题?
答案 0 :(得分:1)
如果您使用当前操作系统不支持的属性ColorDepth
的值,则可能发生此类异常。或者,如果您尝试使用具有Alpha通道(TColorDepth.cd32Bit
)的32位图像列表但在您的应用程序中没有XP清单,则可能会发生这种情况。为此,请在项目中包含单位xpman
,或在“项目&gt;选项&gt;应用程序&gt;外观&gt;运行时主题”中选择“启用运行时主题”,然后选择“Delphi XE2或更高版本”。
答案 1 :(得分:0)
我刚从Windows 10收到更新,它搞砸了我的机器,它夺走了我的文件夹的权限。我目前正在运行Delphi,当我尝试打印报告时,我收到错误消息类Elnvalidoperation无法生成报告。这是因为我的打印机消失了,我不得不重新安装,问题似乎已经解决了。