Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Implementierung einer Interface Prozedur

  Alt 2. Okt 2014, 09:53
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.
  Mit Zitat antworten Zitat