so würde es natürlich nicht mal vom compiler akzeptiert werden. Um dein Beispiel mit der Progressbar aufzugreifen.
Delphi-Quellcode:
TComplexDataObject = class(TObject)
protected
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
private
fProgressBar: TProgressBar;
published
property ProgressBar: TProgressBar read fProgressBar write fProgressBar;
end;
[...]
procedure TComplexDateObject.DeineBerechnung;
begin
//Do something
if Assigned(fProgressBar) then
fProgressBar.Position := x;
//Do something
end;
procedure Notification(AComponent: TComponent; Operation: TOperation);
begin
inherited;
if (Operation = opRemove) and (AComponent = fProgressBar) then
fProgressBar := nil;
end;
oder eben mit der Callbackvariante
Delphi-Quellcode:
TProgressEvnt = procedure(Sender: TObject; Progress: Integer) of Object;
TComplexDataObject = class(TObject)
private
fOnProgress: TProgressEvnt;
published
property OnProgress: TProgressEvnt read fOnProgress write fOnProgress;
end;
[...]
procedure TComplexDateObject.DeineBerechnung;
begin
//Do something
if Assigned(fOnProgress) then
fOnProgress(Self, x);
//Do something
end;