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.