AGB  ·  Datenschutz  ·  Impressum  







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

RTTI published/Aufzählung

Ein Thema von Gruber_Hans_12345 · begonnen am 5. Feb 2007 · letzter Beitrag vom 5. Feb 2007
Antwort Antwort
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#1

RTTI published/Aufzählung

  Alt 5. Feb 2007, 12:21
Warum funktionieren keine Aufzählungen als published Elemente, die folgend aufgebaut sind
(da ich von integer und const umsteigen will auf einen Aufzählungstyp, wäre es praktischer, wenn ich die Namen/Werte 1:1 übernehmen kann und nicht einen dummy einfügen muß oder gar die Werte anpassen muß)


das funktioniert nicht, er kennt den Typ dann nicht als published
Delphi-Quellcode:
   TMyFieldType = (
        hftUnknown = 0
        ...
       , hftBoolean = 16
       , hftCallBack = 18
   );

hier würde es funktionieren
Delphi-Quellcode:
   TMyFieldType = (
        hftUnknown = 0
        ...
       , hftBoolean = 16
       , hftCallBack = 17
   );
warum ist das so?
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: RTTI published/Aufzählung

  Alt 5. Feb 2007, 16:41
Bei Delphi 5 war es noch nicht erlaubt in einem Aufzählungstyp die Werte vorzugeben.
Also muss das ein neues Feature von Delphi 6 sein.

Vermutung:
wie das dann so ist beim Programmieren: neue Features werden zwar eingeführt,
sind aber nicht unbedingt durchgängig verfügbar.
Andreas
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#3

Re: RTTI published/Aufzählung

  Alt 5. Feb 2007, 16:44
Gibt es einen Compilerfehler oder was? Wenn nicht dann bitte die Klasse posten, damit wir pruefen koennen ob da nicht das Problem ist.
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#4

Re: RTTI published/Aufzählung

  Alt 5. Feb 2007, 16:49
nein, es gibt keinen compilerfehler.

Es sieht so aus, als ob, man Aufzählungen nur dann in published variablen verwenden kann, wenn die lückenlos sind, sobald eine lücke vorkommt, dann wird die variable die diesen typ verwendet nicht mehr published gestellt.

dh. sobald eine lücke vorkommt, kann man noch ganz normal compilieren, aber alle befehel für die RTTI kennen diese variable dann nicht mehr.

[edit]also, wenn es eine lösung gibt, dann müßte es eine compiler direktive dafür sein, damit der den Typ trotzdem in die RTTI aufnimmt, auch mit lücken.
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#5

Re: RTTI published/Aufzählung

  Alt 5. Feb 2007, 17:12
Ah, du erwartest das die Namen der Elemente im RTTI sind. Das duerfte eine Limitation von Delphi sein. Solche Aufzaehlungen mit Luecken haben naemlich anonyme Mitglieder. Eben diese Luecken.
Das muss man wohl hinnehmen. Das grundlegende Problem ist halt das die C Aufzaehlungen nicht so abstrakt sind wie die von Pascal. Die Aufzaehlungen mit Werten fuer die Elemente sind daher eine gewisse Vergewaltigung des Pascal-Standards.
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#6

Re: RTTI published/Aufzählung

  Alt 5. Feb 2007, 17:36
Zitat von Robert Marquardt:
Ah, du erwartest das die Namen der Elemente im RTTI sind. Das duerfte eine Limitation von Delphi sein. Solche Aufzaehlungen mit Luecken haben naemlich anonyme Mitglieder. Eben diese Luecken.
Das muss man wohl hinnehmen. Das grundlegende Problem ist halt das die C Aufzaehlungen nicht so abstrakt sind wie die von Pascal. Die Aufzaehlungen mit Werten fuer die Elemente sind daher eine gewisse Vergewaltigung des Pascal-Standards.
ja, und gleichzeitig ist natürlich das ganze property aus dem RTTI verbannt.
dh. ich bekomme mit folgendem code das property nicht mehr ...

Delphi-Quellcode:
  Count := GetTypeData(Instance.ClassInfo)^.PropCount;
GetMem(PropList, Count * SizeOf(Pointer));
GetPropInfos(Instance.ClassInfo, PropList);
ich vermute die einzige möglichkeit wird nun nur noch sein, das ich nen eigenen property editor für das ganze schreibe *grml*
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz