Einzelnen Beitrag anzeigen

shmia

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

Re: Speicherung von Sets... ?!?

  Alt 28. Feb 2005, 16:30
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.
Andreas
  Mit Zitat antworten Zitat