Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: UnterForm mit Daten aus Hauptform versorgen

  Alt 9. Mai 2015, 10:53
Suchst Du vielleicht so etwas?
Delphi-Quellcode:
type
  (* Methodensignatur für eigenen Eventhandler *)
  TOnSomethingHappenedEvent = procedure(Sender: TObject; var Value: integer) of object;

  TBlubb = class
  private
    (* Feld des oben definierten Eventhandlers *)
    FOnSomethingHappened: TOnSomethingHappenedEvent;
    (* Das Feld, das ggf. von außen geändert werden soll *)
    FValue: integer;
  public
    (* Auslösende Methode *)
    procedure DoSomething;
    property OnSomethingHappened: TOnSomethingHappenedEvent read FOnSomethingHappened write FOnSomethingHappened;
  end;

...

{ TBlubb }

procedure TBlubb.DoSomething;
begin
  (* Falls Handler zugewiesen, ausführen *)
  if Assigned(FOnSomethingHappened) then
    FOnSomethingHappened(self, FValue);
  ShowMessage(IntToStr(FValue));
end;
Das Formular, das diese Klasse benutzt:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    btnGo: TButton;
    procedure btnGoClick(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure DoOnSomethingHappened(Sender: TObject; var Value: integer);
  public
    { Public-Deklarationen }
  end;

...

{ TForm1 }

procedure TForm1.DoOnSomethingHappened(Sender: TObject; var Value: integer);
begin
  Value := 42;
end;

procedure TForm1.btnGoClick(Sender: TObject);
var
  Blubb: TBlubb;
begin
  Blubb := TBlubb.Create;
  try
    (* Eventhandler zuweisen *)
    Blubb.OnSomethingHappened := DoOnSomethingHappened;
    (* Auslösende Methode aufrufen *)
    Blubb.DoSomething;
  finally
    Blubb.Free;
  end;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat