Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
Delphi 3 Professional
|
Re: [RTTI] Set-Typ setzen
4. Jun 2006, 11:36
hab noch einen Fehler gefunden (getenumvalue gibt bit-position zurück und nicht dessen int-wert):
Delphi-Quellcode:
function GetSetValue(setInfo:pTypeInfo;valueStr:string):Integer;
var ti:pTypeInfo;
td:pTypedata;
s,s2:string;
p,v:integer;
begin
result:=0;
ti:=nil;
if assigned(setInfo) then
begin
td:=GetTypeData(setinfo);
if assigned(td) then ti:=td.CompType^;
if assigned(ti) then
begin
s:=copy(valueStr,2,length(ValueStr)-2);
p:=pos(',',s);
while p>0 do
begin
s2:=copy(s,1,p-1);
v:=getEnumValue(ti,s2);
if v>-1 then
result:=result or (1 shl v);
delete(s,1,p);
p:=pos(',',s);
end;
s2:=copy(s,1,length(s));
v:=getEnumValue(ti,s2);
if v>-1 then
result:=result or (1 shl v);
end;
end;
end;
Gruß Frank
|
|
Zitat
|