Zitat von
maximov:
Nur was macht die
VCL wenn es doch mal mehr sein sollten? Denn
StringToSet ist ja wie folgst deklariert:
function SetToString(PropInfo: PPropInfo; Value: Integer; Brackets: Boolean = False): string;
Heißt das, daß die
VCL generell auf 32 bit sets beschränkt ist?
Ich denke, dass 32 Elemente für die
VCL das Limit ist.
Delphi-Quellcode:
// aus der Unit SysUtils kopiert:
// Ein Set mit 32 Elementen (0..31)
TIntegerSet =
set of 0..SizeOf(Integer) * 8 - 1;
Und in der
Unit TypInfo wird so damit gearbeitet:
Delphi-Quellcode:
function GetSetProp(Instance: TObject; PropInfo: PPropInfo;
Brackets: Boolean): string;
var
S: TIntegerSet; // 4 Bytes
...
begin
Integer(S) := GetOrdProp(Instance, PropInfo);
...
for I := 0 to SizeOf(Integer) * 8 - 1 do // <= Schleife von 0 bis 31
Das gilt bei Delphi 5; ob bei höheren Version mehr als 32 Elemente möglich kann ich nicht sagen.