![]() |
Komponenteninfos zur Laufzeit anzeigen?
Hallo,
ist es möglich Infos zu den verwendeten Komponenten wie in der IDE zur Laufzeit anzuzeigen?
Delphi-Quellcode:
TComponent hat wohl keine Hint Eigenschaft:gruebel:
for i := 0 to ComponentCount - 1 do
begin TComponent(Components[i]).Hint := TComponent(Components[i]).Name; TComponent(Components[i]).ShowHint := True; end; Viele Grüße ... |
AW: Komponenteninfos zur Laufzeit anzeigen?
nimm TControl
|
AW: Komponenteninfos zur Laufzeit anzeigen?
:thumb: so geht's
|
AW: Komponenteninfos zur Laufzeit anzeigen?
Und natürlich ControlCount anstelle von ComponentCountverwenden ansonsten macht's Bumm.
Und ausserdem muss sich die Prozedur rekursiv aufrufen:
Delphi-Quellcode:
procedure SetzeHintAufName(c:TControl);
var i:Integer; begin c.Hint := c.Name; c.ShowHint := True; for i := 0 to c.ControlCount - 1 do begin SetzeHintAufName(c.Controls[i]); end; end; |
AW: Komponenteninfos zur Laufzeit anzeigen?
Hi,
diesbezüglich noch eine kurze Frage: Ist es möglich zu testen, ob ein Control eine bestimmte Eigenschaft besitzt? (TLabel has property caption ...) Viele Grüße ... |
AW: Komponenteninfos zur Laufzeit anzeigen?
Stichwort RTTI
|
AW: Komponenteninfos zur Laufzeit anzeigen?
Jepp, das geht mit RTTI.
|
AW: Komponenteninfos zur Laufzeit anzeigen?
Delphi-Quellcode:
uses ...,TypInfo;
... var c : TComponent; begin c := {irgendwas}; if IsPublishedProp(c, 'Caption') then ShowMessage('Property Capion ='+GetStrProp(c, 'Caption')); |
AW: Komponenteninfos zur Laufzeit anzeigen?
Danke :thumb:
|
AW: Komponenteninfos zur Laufzeit anzeigen?
Nur noch zur Ergänzung: Mit der neuen RTTI ab D2010 kann man auch nicht veröffentlichte (also öffentliche und sogar private)Eigenschaften, Felder und Methoden eines Objektes ermitteln. Das ist allerdings etwas aufwendiger als o.g. Funktion.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:47 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