AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Object Inspector

Ein Thema von EWeiss · begonnen am 29. Aug 2008 · letzter Beitrag vom 31. Aug 2008
 
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#8

Re: Problem mit Object Inspector

  Alt 29. Aug 2008, 19:27
Der JvInspector arbeitet mit RTTI. Alle published-Properties von Objekten, die von TPersistent abgeleitet sind, haben RTTI aktiviert. Diese RTTI liest der JvInspector aus und stellt diese dann dar.

Sagen wir mal, du hast eine Klasse:
Delphi-Quellcode:
type
  TMyClass = class(TPersistent)
  private
    FBlub : string;
    FHm : integer;
  public
    property Hm: integer read FHm write FHm;
  published
    property Blub: string read FBlub write FBlub;
  end;
Wenn du jetzt diese Klassen in JvInspector hineinlädst, wirst du nur die Eigenschaft "Blub" sehen, "Hm" siehst du nicht, da Hm nicht published ist und somit keine RTTI hat.

Aber du kannst die RTTI noch hinzufügen lassen, wenn du eine neue Klasse davon ableitest und die property "Hm" in den Published-Bereich "verschiebst"
Delphi-Quellcode:
type
  TMyObj = class(TMyClass)
  published
    property Hm;
  end;
Wenn du jetzt die neue Klassen in JvInspector hineinlädst, wirst du beide Eingenschaften sehen.

Wenn du jetzt von TLabel nur bestimmte Sachen in den Inspektor laden willst, hab ich auch noch schnell nen Quelltext für dich. Diesen musst du einfach in das obige Beispiel von mir hineinkopieren.

Delphi-Quellcode:
uses
  TypInfo;

procedure TForm1.ShowObject(aObj: TObject);
begin
  JvInspector1.Root.Clear;
  TJvInspectorPropData.New(JvInspector1.Root, aObj, GetPropInfo(aObj, 'Left'));
  TJvInspectorPropData.New(JvInspector1.Root, aObj, GetPropInfo(aObj, 'Top'));
  TJvInspectorPropData.New(JvInspector1.Root, aObj, GetPropInfo(aObj, 'Align'));
end;
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:14 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-2025 by Thomas Breitkreuz