gpt4 book ai didi

delphi - 如何在Delphi中给setter第二个参数?

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

我想知道我们是否可以在Delphi中这样做:我有一个私有(private)程序:

procedure SetMySend(const oValue: TTM_MySend_Profile;
displayValue: string = '...');

我有一个公共(public)属性(property):

property MySend: TTM_MySend_Profile displayLocateID '...'
read FMySend write SetMySend;

我可以在这里给出一个参数displayValue作为setter的第二个参数吗?我无法编译它。

我无法弄清楚正确的方法,并且想知道我是否可以在 Delphi 中执行此操作。感谢您的帮助!

最佳答案

属性的属性 setter 仅采用一个与该属性类型相同的参数。没有任何语法允许您编写您尝试编写的代码类型。请注意,我忽略了 array properties这些与这里无关。

您需要做的是编写一个专用的 setter,为您的 SetMySend 函数提供额外的参数。

procedure SetMySend(const Value: TTM_MySend_Profile; 
const displayValue: string); overload;
procedure SetMySend(const Value: TTM_MySend_Profile); overload;
property MySend: TTM_MySend_Profile read FMySend write SetMySend;

然后在你编写的实现中

procedure TMyClass.SetMySend(const Value: TTM_MySend_Profile);
begin
SetMySend(Value, '...');
end;

你可以劫持index specifiers实现类似的效果,但我不建议这样做。

关于delphi - 如何在Delphi中给setter第二个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8823609/

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