case后面只能对应数字,也就是integer类型的,你这样的话有点难搞啊。建议数据库里面把这些状态都设置成标志位,然后用strtoint转换成integer类型,再做case就可以了
i:integer
...
i:=strtoint(F_Database.Qdescribe.FieldByName('HairC').AsString);
case i of
1:MUD2:=1;
2:MUD2:=0.8;
3:MUD2:=0.5;
4:MUD2:=0.2;
end;
楼上说的很对呀
不用改,直接IFELSE可能效率不会降低的