Thema: TNotifyEvents

Einzelnen Beitrag anzeigen

Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#28

AW: TNotifyEvents

  Alt 14. Jan 2020, 20:14
@Gyrospeter: 100 Punkte

Soweit ich weiß geht allerdings das umgekehrte nicht in Delphi: Dass ein Button mehrere Handler aufrufen kann. Das nennt sich dann Multicasting (Edit: Oder Delegates? In C# hießen die so meine ich. Lange her.)
Das ist richtig. In Javascript heißt es Propagation und eine ziemlich nervige Krankheit. Bei jQuery löst ein stopPropagation so manches Problem ^^ Ich habe sowas bei Bedarf in Delphi immer über Messages gelöst. Das gilt dann aber nur für VCL und Win32/64.

EDIT: Wobei mir gerade die folgende Idee kommt (Papiertheorie!):
Delphi-Quellcode:
type
  TNotifyEvents = TArray<TNotifyEvent>;

  TMyClass = class(Irgendwas)
  private
    FEvents: TNotifyEvents;
  protected
    procedure DoEvents;
  public
    property Events: TNotifyEvents read FEvents write FEvents;
  end;

implementation

procedure TMyClass.DoEvents;
var
  LEvent: TNotifyEvent;
begin
  for LEvent in FEvents do begin
    if Assigned(LEvent) then begin
      LEvent(Self);
    end;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FMyClass.Events := [Eventhandler1, Eventhandler2, Eventhandler3];
end;
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden

Geändert von Codehunter (14. Jan 2020 um 20:29 Uhr)
  Mit Zitat antworten Zitat