1.
function Tform1.aaa(var str:string):boolean;
BEGIN
  RESULT:=true;
  try
   strtofloat(str);
  except
  on EConvertError do RESULT:=FALSE;
  end;
END;
procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
begin
  str:=edit1.Text;
 {问题:在下句中若用aaa(edit1.text)就通不过,改为aaa(str)就可以,查帮助edit.text为Tcaption类型,但是有type TCaption = type string; 也就是说它还是string类型的,但为什么会有这个问题呢?}
  if aaa(str) then showmessage('aaa');
end;2 .
close 和 application.Terminate
都是使程序序结束,它们有什么区别?编译环境:windows 2000 server + D6.0下班时结贴!!!!!!!!!!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    1、对象的属性值通常不能作为变参数传入;
    2、Close只是关闭当前窗体,如果是主窗体Close才等效于A.pplication.Terminate
      

  2.   

    application.Terminate 释放系统运行时所占用的资源;
    一般在系统运行过程中有动态申请空间的情况使用。
      

  3.   

    如果你的var str:string 不是变参数的话,应该就没有问题了。
      

  4.   

    function Tform1.aaa(var str:string):boolean; 
     STRING的声明是引用,必须和某个变量相连
      

  5.   

    改为
    function aaa(str:string):boolean;就可以了
      

  6.   

    是的,改为function aaa(str:string):boolean;就可以了,能说说它和
              function aaa(var str:string):boolean;