Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Name der aktiven Komponente ermitteln (https://www.delphipraxis.net/164551-name-der-aktiven-komponente-ermitteln.html)

ThoPos 17. Nov 2011 14:56

Name der aktiven Komponente ermitteln
 
Hallo Zusammen,

ich benötige für eine Menüfunktion den Namen des aktiven Controls in meiner Form.

Ich habe folgenden Lösungsansatz:

Delphi-Quellcode:
var
  s : String;
begin
  s := TControl(FindControl(GetFocus)).Name;
Funktioniert eigentlich prima, nur halt bei TComboBox nicht.

Meine Suche im Netz ergab, daß auch andere vor diesem Problem stehen bzw. standen. Aber leider keine Lösung ...

Kann mir einer von Euch eine Lösung nennen?

Gruß
Thomas

Uwe Raabe 17. Nov 2011 15:01

AW: Name der aktiven Komponente ermitteln
 
Was ist denn mit ActiveControl?

ThoPos 17. Nov 2011 18:07

AW: Name der aktiven Komponente ermitteln
 
Danke für den Tipp. Das aktuelle Problem wäre damit gelöst.
Allerdings ist meine Wissensgier geweckt worden ...

Es wäre schon schön, zu wissen, wie man über Getfocus zum Namen der ComboBox komm. Kennt einer den Weg?

Gruß aus Köln
Thomas

Bummi 17. Nov 2011 18:16

AW: Name der aktiven Komponente ermitteln
 
Mit GetFocus bekommst Du eine Fensterhandle zurück, das ist in diesem Fall aber nicht das Handle der Combobox, sondern eines "internen" Windowshandles

Delphi-Quellcode:
var
  s : String;
  h:HWND;
begin
  SetLength(s,255);
  h := GetFocus;
  GetClassName(h, @s[1], Length(s));
  Caption := s;
end;
bei einem normalen Edit bekommst Du TEdit bei der Combobox Edit


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz