当前位置 : 主页 > 编程语言 > delphi >

在Delphi XE中打开项目时,为什么主窗体无法访问DataModule的图像和操作?

来源:互联网 收集:自由互联 发布时间:2021-06-23
我的Delphi XE应用程序很好,直到几天,我无法弄清楚出了什么问题.我的项目布局: 可视控件位于主窗体上 这些控件的操作和图像列表位于数据模块上 当我打开我的项目时,主窗体没有任何
我的Delphi XE应用程序很好,直到几天,我无法弄清楚出了什么问题.我的项目布局:

>可视控件位于主窗体上
>这些控件的操作和图像列表位于数据模块上

当我打开我的项目时,主窗体没有任何与任何控件关联的图像或操作,即使它们应该是.当我编译时,我得到错误消息:“模块’winMain’链接到模块’modGeneral’,这在当前项目中找不到.你想删除/重定向链接到另一个模块吗?”.

解决方法:在我打开项目后关闭主窗体,然后在项目管理器中双击它,在IDE中打开模块(是的,它出现在当前项目中),然后重新打开主窗口form:现在可以正确显示我的所有动作和图像.

您怎么看,这是一个已知的Delphi漏洞?我的项目有问题吗?

检查.dpr文件.重现问题的一种方法是更改​​其中的uses子句.
考虑这个工作正常的例子:

program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {DataModule2: TDataModule};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TDataModule2, DataModule2);
  Application.Run;
end.

对于具有dfm的模块,项目管理器中的图标与往常一样:

如果您删除评论,或将其注释掉:

program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas'; // {DataModule2: TDataModule};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TDataModule2, DataModule2);
  Application.Run;
end.

这里,图标已更改:

……你得到了你描述的错误.您需要关闭并重新打开项目才能使更改生效.

网友评论