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/)
-   -   Komponenteninfos zur Laufzeit anzeigen? (https://www.delphipraxis.net/160066-komponenteninfos-zur-laufzeit-anzeigen.html)

fillibuster 26. Apr 2011 12:26

Komponenteninfos zur Laufzeit anzeigen?
 
Hallo,

ist es möglich Infos zu den verwendeten Komponenten wie in der IDE zur Laufzeit anzuzeigen?
Delphi-Quellcode:
  for i := 0 to ComponentCount - 1 do
  begin
    TComponent(Components[i]).Hint := TComponent(Components[i]).Name;
    TComponent(Components[i]).ShowHint := True;
  end;
TComponent hat wohl keine Hint Eigenschaft:gruebel:

Viele Grüße ...

Bummi 26. Apr 2011 12:30

AW: Komponenteninfos zur Laufzeit anzeigen?
 
nimm TControl

fillibuster 26. Apr 2011 12:58

AW: Komponenteninfos zur Laufzeit anzeigen?
 
:thumb: so geht's

shmia 26. Apr 2011 13:27

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;

fillibuster 26. Apr 2011 13:40

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 ...

Bummi 26. Apr 2011 13:45

AW: Komponenteninfos zur Laufzeit anzeigen?
 
Stichwort RTTI

DeddyH 26. Apr 2011 13:46

AW: Komponenteninfos zur Laufzeit anzeigen?
 
Jepp, das geht mit RTTI.

shmia 26. Apr 2011 13:51

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'));

fillibuster 26. Apr 2011 14:02

AW: Komponenteninfos zur Laufzeit anzeigen?
 
Danke :thumb:

stahli 26. Apr 2011 16:04

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