Delphi 7 - 未为链接组件保存属性更改

时间:2017-04-26 09:01:45

标签: delphi save delphi-7 gexperts

我在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。

2 个答案:

答案 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.