当前位置:  开发笔记 > 编程语言 > 正文

Delphi在表单中共享图像列表的问题

如何解决《Delphi在表单中共享图像列表的问题》经验,为你挑选了2个好方法。

多年来,我一直在Delphi中分享多种形式的图像列表.我在我的应用程序的主要表单上有一个TImageList,然后我有其他形式的组件,我在设计时将Images属性设置为主窗体中的图像列表(例如MyMainForm.MyImageList).

我遇到的问题是随机的Images属性在那些引用主窗体上的图像列表的表单上被清除.

这似乎最近才刚刚开始,但我还没有找到确切的原因.我似乎无法找到一种随意重现问题的方法; 它似乎随机发生.我确实注意到它在表单打开时正好发生了.

我最近在Delphi中做过的一件事就是启用了Autosave Project桌面和符号功能.所以现在当我打开这个项目时,它总是会记住哪些表格是开放的.因此,当打开表单时会发生此问题,并且因为它现在重新打开上次打开项目时打开的所有表单,它会更频繁地发生.

我们有一些开发人员正在开发这个项目,我们正在使用SVN进行版本控制.启用自动保存项目桌面和符号功能的一个问题是,当我们对项目进行SNV更新时,符号文件可能变为无效(因为我们在版本控制下没有符号文件).这只会导致Delphi发出错误消息,但除此之外它似乎无害.我们只是重新编译项目并修复了符号文件.

顺便说一下,我正在使用Delphi 7.

如果您有任何疑问或需要澄清,请发表评论,我会更新问题.



1> Jan Goyvaert..:

多年前我遇到了同样的问题.从那时起,我就养成了将几个表单共享的图像列表放到TDataModule上的习惯.然后德尔福不会丢失链接.将非可视组件放在数据模块上还可以减少表单上的设计时间混乱.在运行时,TDataModule在主窗体之前实例化.



2> moobaa..:

当我遇到这种类型的行为时,总是因为我打开了"其他"表单而没有在IDE中打开主表单... IDE将尝试解析MyMainForm.MyImageList引用,失败并删除引用.

我们通过在代码中手动分配图像列表来解决这个问题(通常在AfterConstruction中).

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有