Delphi 10.3切换TVirtualImageList后PNG阴影显示粉色问题求助
解决Delphi 10.3中TVirtualImageList显示PNG阴影为粉色的问题
同步TVirtualImageList组件属性配置
对比你和同事的TVirtualImageList属性:- 确认
ColorDepth属性一致,必须设为cd32Bit(32位带Alpha通道),若你的是cd24Bit,透明通道会被错误解析为粉色(这类纯色通常是透明通道丢失后的替代色)。 - 检查
ScaleMode等缩放相关属性,确保和同事的设置完全相同,避免缩放过程中透明通道处理异常。
- 确认
统一组件与依赖库版本
TVirtualImageList属于Vcl.ImgList单元,需确保本地环境和同事一致:- 安装Delphi 10.3的最新官方补丁(如10.3.3的更新包),修复组件底层的潜在bug。
- 清理IDE组件缓存:删除
Documents\Embarcadero\Studio\20.0\Repository下的缓存文件,重启Delphi后重新加载项目。
验证PNG文件与加载逻辑
- 直接复制同事项目中的PNG文件替换本地的,排除文件同步时损坏导致的透明通道丢失问题。
- 检查
TVirtualImageList的图像加载逻辑:若通过代码Add图像,确认未错误指定粉色为透明色参数。
对齐编译选项
对比你和同事的项目编译配置:- 进入
Project > Options > Building > Delphi Compiler,确保Runtime Packages、Linking选项一致,重点确认Vcl.ImgList、Vcl.Imaging.pngimage等图像相关包的引用状态。 - 确认编译模式(Debug/Release)与同事保持一致,不同模式的编译优化可能影响图像渲染。
- 进入
重置IDE配置
若以上步骤无效,尝试重置IDE:- 关闭Delphi,删除
Documents\Embarcadero\Studio\20.0\bds.ini文件,重启IDE后重新导入项目配置。
- 关闭Delphi,删除
内容的提问来源于stack exchange,提问作者Memes royale
相关产品推荐
相关产品推荐

