- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了以下问题:
我的 Delphi7 程序在大多数运行 WinXP/Vista/7 的计算机上运行顺利,但在一些较旧的 Windows XP 安装上(只有少数)我遇到以下问题:
我有一个系统图像列表,并且我正在将自己的图标添加到系统图像列表的副本中。添加图标后,我收到“无效的图像大小”。 EInvalidOperation 错误。
这是有问题的代码:
function GetSystemLargeIconsList: TCustomImageList;
// This gets the system image list.
var
SysIL: HImageList;
SFI: TSHFileInfo;
MyImages: TCustomImageList;
begin
SysIL := SHGetFileInfo('', 0, SFI, SizeOf(SFI),
SHGFI_SYSICONINDEX or SHGFI_LARGEICON);
if SysIL <> 0 then begin
MyImages:=TCustomImageList.Create(nil);
// Assign the system list to the component
MyImages.Handle := SysIL;
// The following prevents the image list handle from being
// destroyed when the component is.
MyImages.ShareImages := TRUE;
Result:=MyImages;
end;
end;
var
DocumentImgList: TCustomImageList;
IconToAdd: TIcon;
begin
DocumentImgList:=GetSystemLargeIconsList;
Documents.LargeImages:=DocumentImgList;
Documents.SmallImages:=DocumentImgList;
IconToAdd:=TIcon.Create;
DocumentListIcons.GetIcon(0, IconToAdd);
DocumentImgList.AddIcon(IconToAdd); ----> this is the line of the exception
更糟糕的是,我使用了 TPngImageList 组件,但根据代码,它似乎只是调用了标准的 Delphi 函数:
if TObject(Self) is TPngImageList
then if Image = nil
...
else begin
Patch := FindMethodPatch('AddIcon');
if Patch <> nil
then begin
Patch.BeginInvokeOldMethod;
try
Result := TCustomImageList(Self).AddIcon(Image); ----> this is where the exception happens
finally
Patch.FinishInvokeOldMethod;
end;
end
else Result := -1;
end;
我最近发现在其中一台出现此问题的计算机上,uxtheme.dll 或 explorer.exe 已使用某些 Windows 换肤程序进行了修补。
所以我认为有人或某个程序正在以某种方式侵入系统镜像列表,导致我的 Delphi 程序崩溃。
关于如何解决这个问题有什么想法吗?
谢谢!
最佳答案
您可以尝试的一件事是将图标加载到单独的 tBitmap 中,然后在将其添加到图像列表之前调整其大小。
关于Delphi 7自定义ImageList问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4045884/
我在 .net 应用程序中为我的 ListView 使用 ImageList 时遇到了一些问题。在我的实现中,根据使用情况,这个 ImageList 可以容纳几千张图像。这个问题最初是在我尝试处理大量
如果将 PNG 图像添加到 ImageList 控件,并在 Windows 窗体 (.Net 2.) 应用程序中将该 ImageList 与 ListView 或 TreeView 一起使用,则 Li
背景:我正在构建一个使用 Facebook API 的 C# Forms 应用程序。我的程序已经可以成功验证并检索 friend ID 和姓名的完整列表。我了解如何将这些添加到 ListView 控件
我一直在试图弄清楚为什么我的 imageList 在我的表单运行时不会呈现我的图像,我正在使用以下代码... public void renderImageList() { i
ImageList 应该为插入其中的所有图像创建一个副本。因此,在将原件添加到列表后处理原件应该是安全的。 为什么下面的测试用例会失败? Bitmap test = new Bitmap(128, 1
处理 ImageList 对象的合适方法是什么? 假设我有一些带有 private ImageList imageList 成员的类。现在,在某个时刻我执行以下代码: // Basically, la
只是想知道是否有办法从资源文件填充 ImageList。我在网上四处张望,但一切似乎都是从 2003/2005 年开始的。 如有任何建议,我们将不胜感激。 最佳答案 下面是将资源中的所有图像读入 Im
我最近接触了 Delphi 10.2 Tokyo,并开始迁移使用 Delphi XE4 制作的项目。虽然我的应用程序像以前一样工作,但保存在 TImageList 中的图像有一个奇怪的问题。该图像列表
我正在尝试为我的 TrayIcon 创建一个 ImageList,但图像显示的质量不高。它们原本非常清晰,但是当我在设计时将它们放入 ImageList 时,它们就变形了。我尝试了 ICO 和 PNG
我的主窗体中有一个带有一堆图标的 imageList 控件。我也想在其他形式上使用这些图标。我怎样才能做到这一点?是否有捷径可寻?谢谢 最佳答案 创建一个用户控件。它们对于像这样的重用很有值(valu
我在 GUI 应用程序的 ImageList 中有几个图标。我想从此列表中设置通知图标,但问题是它只接受图标实例而不接受图像。 System.Windows.Forms.NotifyIcon tray
我想知道是否有可能在 VisualStudio 中避免 ImageList 本地化,这是一件令人讨厌的事情,原因有很多: ImageList 本地化经常破坏我复杂的 winfors,我不知道为什么,但
我的表单上有一个 C# 中的 ListView 和 ImageList,并读取了一个最多包含大约 1000 个文件的目录。我使用 AddRange 方法使用 fileItems DummyItems
我正在制作一个表示图像的类,在 Windows 中,您将图像存储在 ImageList 控件中。此类将用于方便地将图像添加到其他控件(如 ListView 或按钮),或者只是在屏幕上绘制。我的问题是:
背景简介:我有一个 TreeView,它是使用 C++ 中的 Windows API 调用创建的(Visual Studio 2008,尽管这应该没什么区别): hTreeview = CreateW
我使用以下代码从文件中获取图像,通过添加文件夹中的所有文件创建图像列表,最后将其链接到 ListView 控件以显示缩略图。问题是如果我添加 300 张图像,该程序使用了超过 700MB 的内存。图像
ImageList 有一个名为“Draw”的方法: imageList.Draw(graphics, bounds.X, bounds.Y, bounds.Width, bounds.Height,
对 VS2010 和 c# 有点陌生。我继承了一个程序,除此之外,我正在尝试弄清楚所有这些图像列表是如何设置的。基本上,现在我正在尝试修改一些现有的图像列表以添加更多图像,然后也创建一个全新的图像列表
这是我的程序的图片: 如您所见,图标不是透明的,只是白色的。这是有问题的,因为我已经将 ListView 编码为交替颜色,而白色在灰色上看起来非常难看。 现在,我正在使用 bitmap with a
我正在使用 LoadIconWithScaleDown 加载我的图标API(或对 XP 使用 LoadImage。)然后我将它添加到我的 CImageList 中: //CImageList imgL
我是一名优秀的程序员,十分优秀!