Thema: TNotifyEvents

Einzelnen Beitrag anzeigen

Gyrospeter

Registriert seit: 11. Apr 2019
34 Beiträge
 
Delphi XE2 Professional
 
#15

AW: TNotifyEvents

  Alt 14. Jan 2020, 10:57
Warum funktioniert das zb. nicht?

Code:
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);

  private
    { Private-Deklarationen }
    FOnEvent: TNotifyEvent;
  public
    { Public-Deklarationen }
    property OnEvent: TNotifyEvent read FOnEvent write FOnEvent;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Lines.Add ('Button 1 pressed');

  if Assigned(FOnEvent) then
    FOnEvent(Self);
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
  Memo1.Lines.Add ('Button 2 pressed');
end;


procedure TForm1.Button3Click(Sender: TObject);
begin
  if Assigned(FOnEvent) then
  begin
    Memo1.Lines.Add ('Nothing assigned');
    FOnEvent := nil;
  end
  else
    FOnEvent := Button2Click;
end;

end.

Zitat:
Zuerst mal würde ich mich von dem Schlagwort TNotifyEvent verabschieden. Das führt hier in die Irre. Du suchst nach einem Tutorial über Eventhandler. TNotifyEvent ist ein Eventhandler unter vielen. Oder genauer gesagt die Deklaration eines Eventhandler-Typen. Ich weiß, noch mehr Fragezeichen

Ein recht gutes Tutorial kommt von Embarcadero selbst.

Und um deine andere Frage zu beantworten: Die große Mehrheit der Eventhandler sind Prozeduren. Allerdings können technisch gesehen genauso gut auch Funktionen verwendet werden.
Danke, lese ich mir mal durch.
  Mit Zitat antworten Zitat