我在DataModule1中有MyConnection,在Form1中有MyQuery。两个组件都是链接组件。 MyConnection的Connected属性和MyQuery的Active属性都设置为True。一切都得救了。现在我将MyConnection Connected设置为False,MyConnection也会自动将MyQuery的Active更改为False。 DataModule1被Delphi 7标记为“已更改”(文件选项卡旁边的星号),所以我可以保存它,但问题是Form1没有。即使我单击“保存”按钮,Form1在MyQuery中的更改也不会保存。
因此,当我重新打开Form1时,MyQuery打开并将Active属性设置为True,并且它还会自动将MyConnection的Connected更改回True。
我想要一个解决方案。如何通过仅更改MyConnection的属性来保存Form1?使用GExperts中的“设置组件属性”工具也会出现此问题。如果我将其设置为更改MyConnection和MyQuery。由于此问题,它仅报告对MyConnection的更改,但未“正式”更改MyQuery。
答案 0 :(得分:0)
稍微拖动表单,这样位置就会改变,现在你可以保存它。
基本上:更改表单或表单本身上任何VCL组件的任何属性。即使您将它们更改为相同的值,这也会有效,您将可以选择保存表单。
答案 1 :(得分:0)
如果问题是您忘记将连接设置为false,则有更好的方法。您可以对连接组件进行子类化,并以不将值写入DFM的方式重新引入connected属性。
因此,当打开数据模块(或表单)时,连接属性将为false。
对于ado连接组件,源代码如下所示:
unit adoconnection1;
interface
uses
SysUtils, Classes, DB, ADODB;
type
tadoconnection1 = class(TADOConnection)
private
protected
public
published
property Connected stored false;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('GuidoG', [tadoconnection1]);
end;
end.