调用函数,返回的result赋值出错,什么问题呀?(100分)

  • 主题发起人 主题发起人 southskylg
  • 开始时间 开始时间
S

southskylg

Unregistered / Unconfirmed
GUEST, unregistred user!
函数定义是这样的:
function ThlpdDMDataBase.Inshlpdlsb(var lsb_name) :ansistring;
var
hh:ansistring;
begin
hh := '这是个比例模型,差不多是这样的!';
result := hh;
——————1
end;

调用时候运行到——————1位置时候出现错误提示 为:
“ Access violation at address 00404912 in module project.exe”
请求援助,这是怎么回事,
 
////------1
 
这个函数本身没问题
应该是你调用的地方或者方法问题!
我测试了一下,运行通过,测试调用方法如下:
procedure TForm1.Button1Click(Sender: TObject);
var
s:String;
begin
s:= '';
Edit1.Text := Inshlpdlsb( s );
end;

function TForm1.Inshlpdlsb(var lsb_name) :ansistring;//这里将你的函数改为在Form1中
var
hh:ansistring;
begin
hh := '这是个比例模型,差不多是这样的!';
result := hh;
end;
运行结果是Edit1中显示了“这是个比例模型,差不多是这样的!”
 
private
function Inshlpdlsb() :ansistring;
....................
function TForm1.Inshlpdlsb() :ansistring;//var lsb_name -----不知你这个参数是什么的
var
hh:ansistring;
begin
hh := '这是个比例模型,差不多是这样的!';
result := hh;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(Inshlpdlsb());
end;
-----这样没有问题的。(暂时把参数去掉了,var lsb_name 在你的程序里是什么意思?你可以在加上)
或者不用function,改用Procedure。
 
问题是在别的地方,我发现了源头,很奇怪的问题呀,***,不过谢谢大家了
 

Similar threads

后退
顶部