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'
请教大师们,怎么修改才能正常调用啊?谢谢! 展开
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'
请教大师们,怎么修改才能正常调用啊?谢谢! 展开
2个回答
展开全部
从你的错误提示来看。
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是保留字,应该换成其它的名称。
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是保留字,应该换成其它的名称。
展开全部
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;
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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询