把tclientdataset传入dll后,不能访问fields[i]的displayformat,原因是判断if clientdataset.fields[i] is tfloatfield then
begin
end时,clientdataset.fields[i]永远不是tfloatfield,就算它是。就算强行设置所不行:
try
strFormat:=(clientdataset.fields[i] as tfloatfield).displayformat;
except
end;但 clientdataset.Fields[i].ClassName 就正确,会显示为tfloatfield等。请问把tclientdataset传入dll后,它的类的属性会有所变化?
begin
end时,clientdataset.fields[i]永远不是tfloatfield,就算它是。就算强行设置所不行:
try
strFormat:=(clientdataset.fields[i] as tfloatfield).displayformat;
except
end;但 clientdataset.Fields[i].ClassName 就正确,会显示为tfloatfield等。请问把tclientdataset传入dll后,它的类的属性会有所变化?
或者用if clientdataset.fields[i] in [tfloatfield,..,..];
你的EXE与DLL工程有没有选择Build with runtime packages编译选项?如果否,则100%不能使用is操作符。