gpt4 book ai didi

Delphi:如何在 TEdit/TMaskEdit 中设置文本而不调用 onchange 事件

转载 作者:行者123 更新时间:2023-12-03 15:37:07 26 4
gpt4 key购买 nike

我有一个相当大的设置表单,我想用类中的数据填充它。所以我做了很多

Edt1.text := ASettings.FirstThing; 

我想避免

Edt1.onchange := nil;
Edt1.text := ASettings.FirstThing;
Edt1.onchange := edt1Onchange;

如何更改文本框中的文本并避开 onchange 事件。

最佳答案

我使用过类似更改 OnChange 处理程序的方法,但更常见的是,我使用标志。

updatingFromCode := true;
Edt1.Text := ASettings.FirstThing;
updatingFromCode := false;

然后

procedure TForm1.OnChange(...);
begin
if updatingFromCode then
Exit;
...


此外,我不会将 OnChange 硬编码为实际的 OnChange 过程,而是存储编辑控件的当前值,然后重置它(如果未设置该值,或者如果另一个地方已更改它等,则该值将起作用)

oldOnChange := Edt1.OnChange;
Edt1.OnChange := nil;
Edt1.Text := ASettings.FirstThing;
Edt1.OnChange := oldOnChange;

关于Delphi:如何在 TEdit/TMaskEdit 中设置文本而不调用 onchange 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2014541/

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