AGB  ·  Datenschutz  ·  Impressum  







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

Auslesen von Properties mittels RTTI

Ein Thema von StefanG · begonnen am 23. Jun 2006 · letzter Beitrag vom 23. Jun 2006
 
StefanG

Registriert seit: 23. Feb 2006
74 Beiträge
 
#1

Auslesen von Properties mittels RTTI

  Alt 23. Jun 2006, 10:08
Hallo, ich habe ein Problem mit der RTTI.

Ich habe eine Klasse (in einer Extra Unit), die eine ganze Menge Properties hat (Boolean)
Diese Properties geben an, ob eine Bestimmte Lizenz vorhanden ist oder nicht.

In einer Datenbank gibt es 4 Felder :

Der Name der Lizenz und 3 weitere Felder, die zusammengesetzt den Namen der Property widergeben.
Die Klasse sieht etwa so aus

Delphi-Quellcode:
type
   TLizenzen = class(TObject)
   private
     FM110100 : Boolean;
     FM110120 : Boolean;
     FM110140 : Boolean;
     FM110200 : Boolean;
   public
     constructor Create(Dir: String); overload;
     constructor Create(DS: TDataset); overload;
   published
     property M110100 : Boolean Read FM110100 Write FM110100;
     property M110120 : Boolean Read FM110120 Write FM110120;
     property M110140 : Boolean Read FM110140 Write FM110140;
     property M110200 : Boolean Read FM110200 Write FM110200;
   end;
(unwichtige Sachen jetzt mal weggelassen, es sind in Wirklichkeit auch viel mehr Properties die aber alle gleich aussehen)

Das erste Feld, also der Lizenzname wird in einer Liste angezeigt, woraus man dann verschiedene auswählen kann.
Jetzt will ich überprüfen, ob die Lizenzen vorhanden sind. Dazu baue ich also die anderen 3 Felder zum Lizenznamen zusammen.

Das Problem ist jetzt, dass ich die Property nicht vernünftig abfragen kann.

In der Unit TypInfo gibt es eine Funktion GetOrdProp. Somit sollte ich mit

Delphi-Quellcode:
  ...
  result := GetOrdProp(LizenzObj,'M110100') <> 0;
die Property auslesen können, es kommt aber immer die Meldung "Eigenschaft M110100 existiert nicht.
GetOrdProp(Form1,'visible') z.b. funktioniert aber so.

Beim einlesen habe ich gesehen, dass die Funktion nur Published properties auslesen kann, was sie ja jetzt auch sind,
allerdings gibt auch die Funktion IsPublishedProp(LizenzObj,'M110100') False zurück.

Habe ich irgendwas übersehen oder geht es vielleicht doch ganz anders?
  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 17:28 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