我的应用程序(写在Delphi 7上)在Windows XP SP3上正确运行,但当我试图在Windows 7上运行它时,会出现此异常:
EInvalidOperation with message "Invalid 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中出现了这个问题。我该如何解决这个问题?
如果您使用当前操作系统不支持的属性ColorDepth
的值,则可能发生这样的异常。或者,如果您尝试使用带有alpha通道(TColorDepth.cd32Bit
)的32位映像列表,但在应用程序中没有XP清单,则可能发生这种情况。要做到这一点,包括单元xpman
在您的项目或选择"启用运行时主题"在"项目>选项>应用程序>外观>运行时主题"Delphi XE2或更高。
我刚收到windows 10的更新,它把我的机器弄得一团糟,它剥夺了我文件夹的权限。我目前正在运行Delphi,当我试图打印出报告时,我得到错误消息类Elnvalidoperation无法生成报告。这是因为我的打印机消失了,我不得不重新安装,问题似乎已经解决了。