Einzelnen Beitrag anzeigen

Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.468 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Eigene Komponente -> Handle vom Aufruf-Fenster bekommen?

  Alt 4. Aug 2020, 08:51
Guten Morgen, wiedermal "Eigene Komponente"-Thema

Wie gelangt ihr in Euren Komponenten (falls erforderlich) an das Handle vom Aufrufer-Fenster?

Ich mache es zur Zeit so:
Delphi-Quellcode:
uses Vcl.Forms;

constructor TKomponente.Create(AOwner: TComponent);
begin
  FParentWnd := (AOwner as TForm).Handle;
end;
Das funktioniert nicht unbedingt: Owner muss nicht notwendigerweise ein TForm sein. Es kann z.B. ein Frame sein, oder eine sonstige Komponente, die explizit im Code beim Aufruf des Constructors übergeben wurde:

  bal := TKomponente.Create(ed_blub);
Theoretisch geht auch NIL, also solltest Du auch das prüfen.

Sinnvoller wäre aber vermutlich sowieso Parent statt Owner, denn Owner kann ein beliebiges TComponent sein, welches evtl. gar kein Window-Handle hat. Parent ist immer ein TWinControl, hat also ein Window-Handle.

Wenn ich mich recht erinnere, gibt es eine GetOwnerForm-Methode (oder war's GetParentForm?) in TComponent.
Thomas Mueller

Geändert von dummzeuch ( 4. Aug 2020 um 09:33 Uhr)
  Mit Zitat antworten Zitat