Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#31

AW: Eigene Ereignisse auslösen

  Alt 26. Mai 2014, 15:35
Betrachten wir das doch mal ganz abstrakt aus der Sicht der Anwendung:

Es gibt da so einige Daten-Pakete, die empfangen und gesendet werden können. Mehr interessiert die Anwendung an diesem Punkt nicht. Wann und warum ist egal. Wenn, dann muss die Anwendung reagieren und wenn die Anwendung etwas senden will, dann muss das auch einfach passieren. Wie das passiert, ist der Anwendung an diesem Punkt auch egal.

Damit kann man jetzt eine abstrakte Klasse definieren, die diese Anforderungen (Senden von Daten und Events beim Empfang von Daten) erfüllt.
Delphi-Quellcode:
type
  TCNC_Data1 = record
  ...
  end;

  TCNC_Data2 = record
  ...
  end;

  TCNC_Command1 = record
  ...
  end;

  TCNC_Command2 = record
  ...
  end;

  TCNC_Data1_Event = procedure ( Sender : TObject; Value : TCNC_Data1 ) of object;
  TCNC_Data2_Event = procedure ( Sender : TObject; Value : TCNC_Data2 ) of object;

  TAbstractCNC_Talker = class abstract
  private
    FOnReceiveData1 : TCNC_Data1_Event;
    FOnReceiveData2 : TCMC_Data2_Event;
  public
    procedure Send( Value : TCNC_Command1 ); overload; virtual; abstract;
    procedure Send( Value : TCNC_Command2 ); overload; virtual; abstract;

    property OnReceiveData1 : TCNC_Data1_Event read FOnReceiveData1 write FOnReceiveData1;
    property OnReceiveData2 : TCNC_Data2_Event read FOnReceiveData2 write FOnReceiveData2;
  end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat