Ein Interface scheint eigentlich schon zu viel Aufwand.
Delphi-Quellcode:
TProzessFileEvent = procedure(Sender: TObject; const AFilename: string) of object;
TMyComponent = class({...})
public
procedure DoProzessFileList(AProzessFileEvent: TProzessFileEvent);
end;
procedure TMyComponent.DoProzessFileList(AProzessFileEvent: TProzessFileEvent);
var
Filename: string;
begin
Assert(Assigned(AProzessFileEvent), Self.Name + '.DoProzessFileList(nil)');
for Filename in FFileList do
AProzessFileEvent(Self, Filename);
end;
Eine mögliche Erweiterung für den Objektinspektor:
Delphi-Quellcode:
TMyComponent2 = class(TMyComponent)
private
FOnProcessFile: TProzessFileEvent;
public
procedure DoProzessFileList; reintroduce;
published
property OnProcessFile: TProzessFileEvent read FOnProcessFile write FOnProcessFile;
end;
procedure TMyComponent2.DoProzessFileList;
begin
if Assigned(FOnProcessFile) then
inherited DoProzessFileList(FOnProcessFile);
end;
Den Auslöser(Sender) als Parameter mitzuliefern ist langfristig immer eine gute Idee.