delphi自定义函数中调用文本框的数字

自定义函数想调用文本框中的数据functionresult(a:double):double;vari,j:integer;beginAVG:=average/2;for... 自定义函数想调用文本框中的数据
function result(a:double):double;
var i,j:integer;
begin
AVG:=average/2;
for i:=0 to strtoint(Edit1.Text)-1 do
X0[i]:=(x[i]-AVG)*(x[i]-AVG);
dmax:=X0[0];
dmin:=X0[0];
for j:=1 to strtoint(Edit1.Text)-1 do
begin
if X0[j]>dmax then
dmax:=X0[j]
else
dmin:=X0[j];
end;
提示出现错误:
[错误] Unit1.pas(51): Undeclared identifier: 'Edit1'
[错误] Unit1.pas(55): ')' expected but identifier 'Text' found
[错误] Unit1.pas(34): Unsatisfied forward or external declaration: 'TForm1.result'
[致命错误] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

请教大师们,怎么修改才能正常调用啊?谢谢!
展开
 我来答
一树一花开Cr
2010-02-26 · 超过36用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:0
展开全部
从你的错误提示来看。
function result(a:double):double;
这个函数你应该是想写成一个类函数,你在TForm1的定义里面应该有这一句定义,二是你在实现部分,应该有类作用域,如:
定义部分:
type
TForm1 = class(TForm)
public
function result(a:double):double;
end;
实现部分:
function TForm1.result(a:double):double;
begin
....
end;

因为你的函数实现没有写成类函数,所以当然找不到你在form1上面放的edit控件,改成上面的样子,相应的问题也就OK了

最后还有一点,建议你函数名称不要用result,因为result是保留字,应该换成其它的名称。
高永存的编程小站
2010-02-26 · TA获得超过181个赞
知道小有建树答主
回答量:163
采纳率:0%
帮助的人:117万
展开全部
1. 要用Form1.edit1.text
2.函数名不能用result,result是函数的返回值,

function func(a:double):double;
var i,j:integer;
begin
AVG:=average/2;
for i:=0 to strtoint(form1.Edit1.Text)-1 do X0[i]:=(x[i]-AVG)*(x[i]-AVG);
dmax:=X0[0];
dmin:=X0[0];
for j:=1 to strtoint(form1.Edit1.Text)-1 do begin
if X0[j]>dmax then dmax:=X0[j] else dmin:=X0[j];
end;
result:=这里是函数的返回值;
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式