gpt4 book ai didi

Delphi:DBGrid选项未保存?

转载 作者:行者123 更新时间:2023-12-03 15:27:45 25 4
gpt4 key购买 nike

我有自己的 DBGrid,基于 TDBGrid。

在很多地方最好看到选择,所以我想将其设置为 Create,并且如果我稍后将其设置为 False,属性编辑器会保存 Options 属性。

因此构造函数将其创建为:

constructor TMyDBGrid.Create(aOwner: TComponent);
begin
inherited Create(aOwner);
Options := Options + [dgAlwaysShowSelection];
end;

我认为没关系,因为我将其设置为True,创建一开始就将其设为True,但在加载时Delphi会将其更改为合适的值(False)。

但是经验表明这现在行不通了!

不知道为什么。

我将自己的 dbgrid 放在 Form1 上。ASS 选项已打开。我将其设置为 false。

我启动应用程序。现在又开始了。当我在加载时显示选项的值时,我得到了真实值。因此该值没有根据需要加载。

我不知道为什么会发生这种情况,但我认为这是基于“默认”???

我的默认值为 False,因此如果我将其设置为 False,则不会将值保存到 DFM 中...

那么,在不产生此效果的情况下保存值的可能方法是什么?

最佳答案

Delphi 流系统仅在属性不同于默认值时存储属性。这些默认值可以是隐式的(例如整数为 0,字符串为 ''),并且可以通过 default 关键字显式设置。 TDbGrid.Options 也是如此([dgEditing、dgTitles、dgIndicator、dgColumnResize、dgColLines、dgRowLines、dgTabs、dgConfirmDelete、dgCancelOnExit、dgTitleClick、dgTitleHotTrack])。

只要您不更改集中的任何其他选项,通过将 dgAlwaysShowSelection 设置为 false,您最终会得到默认值,并且该值不会存储在 DFM 中。现在,当您在 Create 中将 dgAlwaysShowSelection 设置为 true 并且 DFM 中未存储任何内容时,该选项将在加载后打开,即使它在存储时已关闭。

为了满足您的需求,您不仅需要在构造函数中将该选项设置为 true,还需要指定更改后的默认值,以使流系统意识到此更改。

关于Delphi:DBGrid选项未保存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7646534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com