![]() |
Re: Speicherung von Sets... ?!?
Ich hab ein kleines Problem mit TypInfo.GetSetProp.
und zwar verreckt dieses mit einer Exception, Zitat:
dieses geht ohne Probleme:
Delphi-Quellcode:
hier kommt die Exception:
TXMLNodeType = (xtInstruction, xtTypedef, xtElement, xtCData, xtComment, xtUnknown);
TXMLNodeTypes = Set of TXMLNodeType; TXMLNodeType = (xtInstruction, xtTypedef, xtElement, xtCData, xtComment, xtUnknown=5); TXMLNodeTypes = Set of TXMLNodeType;
Delphi-Quellcode:
TXMLNodeType = (xtInstruction, xtTypedef, xtElement, xtCData, xtComment, xtUnknown=6);
TXMLNodeTypes = Set of TXMLNodeType; TXMLNodeType = (xtInstruction, xtTypedef, xtElement, xtCData, xtComment, xtUnknown=31); TXMLNodeTypes = Set of TXMLNodeType; |
Re: Speicherung von Sets... ?!?
Zitat:
die Grösse ist ja zur Compile Time bekannt, daher ist ein Set of 1..5 nur 1 Byte, ein Set of Byte 32 Byte gross. @shmia: 256 / 8 = 32 ! Gruss Reinhard |
Re: Speicherung von Sets... ?!?
Zitat:
{$MinimumEnumSize} = 4, dann ist auch ein Set mit nur 1 Wert drin auch 4 Byte. zu meinem Problem: ich versuch die TypInfo grad zu zerlegen und der Fehler liegt vermutlich in der Internen TypInfo.InternalGetPropInfo (k.A. eventuell Stack zersört), aber abStürzen tut es dann am Ende (end;) von FindPropInfo. [add] ach ja ... Delphi2009 (probier heut abend mal eine ältere Version) [edit] TypInfo.InternalGetPropInfo isses doch nicht ... weiter geht die Suche im anderen TypInfo.GetSetProp :x |
Re: Speicherung von Sets... ?!?
so, hab die letzte Stunde versucht die TypInfo zu debuggen ...
Delphi-Quellcode:
bei Sets mit freien Stellen ist CompType nicht vorhanden (= nil) :shock:
TTypeData > tkSet: (CompType: PPTypeInfo));
in der TypInfo.SetToString wird dieses hier
Delphi-Quellcode:
aufgerufen, liefert nil und da es daraufhin ungeprüft dereferenziert wird,
GetTypeData(PropInfo^.PropType^)^.CompType
Delphi-Quellcode:
knallt es.
TypeInfo := GetTypeData(PropInfo^.PropType^)^.CompType^;
die Frage ist nur, warum gibt es, bei sowas
Code:
, keine PPTypeInfo mehr? :?
TXMLNodeType = (xtInstruction, xtTypedef, xtElement, xtCData, xtComment, xtUnknown[color=#ff0000][b]=6[/b][/color]);
TXMLNodeTypes = Set of TXMLNodeType; [edit=alzaimar]'freuen' -> 'freien' auf Bitten des Beitragverfassers. Mfg, alzaimar[/edit] |
Re: Speicherung von Sets... ?!?
![]() hat da jemand 'ne Idee, wie man das elegant umgehen kann, bzw. ob doch irgendwie die TypeInfo herzubekommen ist, wenn man einen Set mit leeren Stellen hat? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:07 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