高分求助一个自定义函数,请诸位帮帮忙好吗?(100分)

  • 主题发起人 主题发起人 fjw
  • 开始时间 开始时间
F

fjw

Unregistered / Unconfirmed
GUEST, unregistred user!
各位编程高手:
如果我定义如下:
var tempstring:string;
begin
tempstring:='gz<0 and gz>100';
gz:=adotable1.fieldbyname('gz').value;
if 自定义函数(tempstring) then
showmessage('这个值是错误的,请重输入!');
end;
 
我太笨了,竟然看不懂这是说什么的。
 
自定义函数的返回值设成布尔型不就行了吗?
 
什么意思!!!
 
请问t1122,函数的返回是要返回一个布尔型,但这中间的具体过程是怎么来决定的,你能告诉我吗?
 
[red][:(!]哪有一个值既小于0,又大于100的呀?你应该使用OR[/red]
 
提问不清楚,不过终于看懂了,是说判断如果gz<0或者gz>100,那么显示出错误吧?
如果这样,还简单,但是如果通过字符串传递进参数,并解释执行,那就麻烦了。
begin
gz:=adotable1.fieldbyname('gz').AsInteger;
if test(gz) then
showmessage('这个值是错误的,请重输入!');
end;

function test(l_gz:Integer):Boolean;
begin
if ((l_gz<0) or (gz>100)) then
Result:=True
else
result:=False;
end;
 
[red][:(!]
var
value_gz:float;
begin
value_gz:=adotable1.fieldbyname('gz').value;
if (value_gz<0) or (value_gz>100) then
showmessage('输入有错,请重新输入!');
end;
[/red]
 
1.gz这类在公式中用到的变量应在含RTTI信息的类的public中定义,这样才能通过RTTI找到。
同时自定义函数也应在同一个类中定义;否则要加个参数指明是哪个类。
2.在函数中,分析公式时,将变量分离出来后,用RTTI找到它的值。
3.以后,不难了吧?
 
这是一个简单的解释/分析器,在这里作了,处处都能用
 
后退
顶部