【发布时间】:2016-09-13 14:59:26
【问题描述】:
如果我的对象中的某个属性未设置,我希望能够创建编译器错误/警告。假设我有以下课程:
interface
type
TBarkevent = procedure (Bark : String) of object;
TDog = class
private
FOnBark : TBarkevent;
procedure SetBark(const Value: TBarkevent);
function GetBark: TBarkEvent;
public
procedure Bark;
property OnBark : TBarkEvent read GetBark write SetBark;
constructor Create;
end;
implementation
{ TDog }
procedure TDog.Bark;
begin
if Assigned(OnBark) then
OnBark('Woof!')
end;
constructor TDog.Create;
begin
end;
function TDog.GetBark: TBarkEvent;
begin
Result := FOnBark;
end;
procedure TDog.SetBark(const Value: TBarkevent);
begin
FOnBark := Value;
end;
我在另一个单元中使用TDog 类,如下所示:
var
Dog : TDog;
begin
Dog := TDog.Create;
Dog.OnBark := DogBark;
Dog.Bark;
现在,一旦调用了Bark() 过程,就会触发OnBark 事件。
我的问题:
我是否可以强制指定OnBark 属性,以便在未设置事件时发出编译器错误/警告?
【问题讨论】:
-
有时你必须站出来把事情做好。编译器无法为您完成工作。
-
@DavidHeffernan 问题是,从现在起几年后,除我之外的其他人最终可能会使用此代码,并且有一些东西可以告诉他们他们早期犯了错误,这可以节省大量时间和精力跨度>
-
那叫文档
-
确实,
Dog.ScratchEar;不会为你带来任何魔法 :-)
标签: delphi firemonkey delphi-10-seattle