Thema: Delphi [RTTI] Set-Typ setzen

Einzelnen Beitrag anzeigen

Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#3

Re: [RTTI] Set-Typ setzen

  Alt 4. Jun 2006, 10: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
  Mit Zitat antworten Zitat