Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Selektierte Komponente abfragen (https://www.delphipraxis.net/122469-selektierte-komponente-abfragen.html)

Eppos 16. Okt 2008 19:05


Selektierte Komponente abfragen
 
Hallo zusammen,

ich habe ein Form auf der verschiedene Eingabefelder stehen.
Jetzt möchte ich gerne den namen der selektierten Komponente abfragen.
Wie kann ich anfragen, welche Komponente momentan selektiert ist?

Vielen Danke!

Hawkeye219 16. Okt 2008 19:12

Re: Selektierte Komponente abfragen
 
Hallo Eppos,

die Eigenschaft Delphi-Referenz durchsuchenTScreen.ActiveControl sollte dir die gesuchte Information liefern.

Gruß Hawkeye

Looper 16. Okt 2008 19:18

Re: Selektierte Komponente abfragen
 
Hey
man könnte auch diesen Code in eine Schleife betten und so alle Komponenten auf dem Formular abfragen.
Delphi-Quellcode:
 
if (form1.Components[0] is TEdit) then
  if TEdit(form1.Components[0]).focused then
    //...
Ich weiß allerdings nicht, ob dieser Code auch schnell ausgeführt wird :wink:

Gruß Looper

Uwe Raabe 16. Okt 2008 19:34

Re: Selektierte Komponente abfragen
 
Zitat:

Zitat von Hawkeye219
die Eigenschaft Delphi-Referenz durchsuchenTScreen.ActiveControl sollte dir die gesuchte Information liefern.

TForm.ActiveControl sollte hier aber auch gehen.

I.A 20. Mär 2009 08:31

Re: Selektierte Komponente abfragen
 
Hallo!

Auch ich suche derzeit nach einer solchen Möglichkeit. Ich will einen eigenen Formdesigner bauen und brauche ein Ereignis, das bei Änderung der selektierten Komponente den Objektinspektor aktualisiert.

Delphi-Quellcode:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ClassInspector.Hide;
  ClassInspector.ClassProperties := ActiveControl;
  ClassInspector.Show;
end;
Hier ist Form1 der Formdesigner unter Verwendung der Komponente TSizeCtrl vom User _frank_ aus der DP. Classinspector ist der Objektinspektor.

Wenn ich zur Entwurfszeit ActiveControl in der FormCreate Methode fest einstelle, erhalte ich die Anzeige im OI wie gewünscht.

http://www.delphipraxis.net/internal...highlight=rtti

Nur, wenn ActiveControl zur Entwurfszeit NIL bleibt (Eintrag im Delphi-OI leer) und ich also die anzuzeigende Komponente zur Laufzeit auswähle, klappt das nicht. Wer kann hier helfen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:27 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