Einzelnen Beitrag anzeigen

Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: kann man einer Procedure als Parameter eine andere Procedure übergeben, o.ä.?

  Alt 31. Mär 2018, 15:48
Jap...das geht Einfach mal nach dem Stichwort "Callback" suchen
Die Methode über Callbacks hat den "Nachteil" das du eine fixe Paremterliste für alle Prozeduren hast.

Innerhalb eines Objektes brauchst du die Prozedur aber nicht mal übergeben..schließlich kennst du die einzelnen Prozeduren, die je nach Status aufgerufen werden sollten.

Evtl. wär auch das ein Ansatz:

Delphi-Quellcode:
Type
  TCallback = Procedure (Parameter1:string);
  TStatus = (sStatus1,sStatus2,sStatus3);

Procedure Callback1(param1:string);
begin
  :
end;

Procedure Callback2(param1:string);
begin
  :
end;

Procedure CallBack3(Param1:string);
begin
  :
end;

const
  TCalls : array[TStatus] of TCallback = (
   @Callback1,@Callback2,@Callback3
  );

Procedure CheckState(aState:TStatus);
begin
  TCalls[aState]('Was auch immer');
end;
Hab das jetzt nicht ausprobiert ob das so geht, aber vom Prinzip her sollte es gehen.
Uwe
e=mc² or energy = milk * coffee²

Geändert von Ghostwalker (31. Mär 2018 um 16:03 Uhr) Grund: Erweiterung
  Mit Zitat antworten Zitat