![]() |
aktive Komponenten anzeigen lassen
Hallo Leute,
ich habe eine Form mit meheren unterschiedlichen Komponenten und möchte mir nun die gerade aktive Komponente in z. B. einem Lablefeld mit deren Namen anzeigen lassen. ?????? :wall: |
Re: aktive Komponenten anzeigen lassen
Du musst eine Funktion überschreiben:
Delphi-Quellcode:
interface
type TForm1 = class(TForm) Label1: TLabel; ... public function SetFocusedControl(Control: TWinControl): Boolean; override; end; implementation function TForm1.SetFocusedControl(Control: TWinControl): Boolean; begin Result := inherited SetFocusedControl(Control); Label1.Caption := Self.ActiveControl.Name; end; |
Re: aktive Komponenten anzeigen lassen
Es gibt keine aktiven Komponenten, sondern pro Formular nur ein Steuerelement (=control), dass den Fokus hat.
Dieses Steuerlement kann man mit TForm.ActiveControl abfragen.
Delphi-Quellcode:
Wenn dich zusätzlich interessiert, auf welchem Panel/Groupbox ein Steuerelement liegt, dann kannst
LabelInfo.Text := self.ActiveControl.Name;
du so vorgehen:
Delphi-Quellcode:
var
c : Tcontrol; s : string; begin c := self.ActiveControl; if Assigned(c) then begin s := c.Name; // name des fokusierten Steuerelements while (c.Parent <> nil) and (c.Parent<>self) do begin c := c.Parent; s := c.Name + ' -> ' s; // Name des Parent dazu end; LabelInfo.Text := s; end else LabelInfo.Text := 'kein Control selektiert'; end; |
Re: aktive Komponenten anzeigen lassen
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz