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/)
-   -   RTTI auch zur Designzeit? (https://www.delphipraxis.net/158154-rtti-auch-zur-designzeit.html)

snook 7. Feb 2011 20:49

RTTI auch zur Designzeit?
 
hoffe der titel ist nicht zu verwirrden gewählt. will eigentlich nur wissen, in wiefern es möglich ist die RTTI zur Designzeit zu verwenden, bsw. in einem property editor

himitsu 7. Feb 2011 21:06

AW: RTTI auch zur Designzeit?
 
Es kommt drauf an, was du genau von dieser wissen willst.

Die Codes, welche du in der VCL, zur Designzeit laufen läßt, arbeiten ja mit (Design)Packages und auf die geladenen Codes der Packages hast du ganz normal Zugriff, so als liefe der Code in einem eigenem Programm.

snook 7. Feb 2011 21:33

AW: RTTI auch zur Designzeit?
 
also ich habe ne unit, die mir zur laufzeit informationen über die public und published methoden einer komponente liefert. das läuft dann über typinformationen die ich aus der rtti bekomme. ich habe das ganze dann in ein designzeit package gepackt, allerdings bekomme ich zur designzeit im OI nur eingeschränkte informationen über die methoden. daher hab ich mich mal gefragt, ob bestimmte, also z.b. erweiterte typinformationen nur zur laufzeit zur verfügung stehen...

snook 7. Feb 2011 21:46

AW: RTTI auch zur Designzeit?
 
Liste der Anhänge anzeigen (Anzahl: 3)
ich häng mal die units ran, ist vielleicht auch für andere ganz interessant, bin ich dank dem forum drauf gestoßen, nach einiger sucharbeit

das ganze lässt sich dann zum beispiel so anwenden:

Delphi-Quellcode:
{$METHODINFO ON}
uses HVMethodSignature, HVMethodInfoClasses;

type
  TestKlasse = class(TComponent)
  private
    procedure ShowMethods;
  public  
    function LiesReal: real;
    SchreibReal(value: Real);
  end;

  var Test: TestKlasse;

implementation
 
procedure TestKlasse.ShowMethods;
var Info: TClassInfo;
    i  : integer;
begin
  GetClassInfo(Klasse.ClassInfo,Info);
  for i := Low(Info.Methods) to High(Info.Methods) do
    ShowMessage(MethodSignatureToString(Info.Methods[i]));
end;


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