Function Tform1.Test(Teststring:PChar):boolean;
Begin
  Teststring:='aaaaaa';
  Result:=True;
End;
调用程序是
var
  aaa:Pchar
IF Test(aaa)=True Then
  Begin
    Showmessage(aaa);
  End;
我的意思是调用后直接能读出Teststring中的值,也就是'aaaaa',我下面的代码不行,请问是函数出了问题,还是调用程序出了问题,请给出代码,谢谢

解决方案 »

  1.   

    function TForm1.Test(var TestString:pChar):boolean;
    begin
        TestString:='aaaaa';
        Result:=true;
    end;
      

  2.   

    Function Tform1.Test(var Teststring:string):boolean;//注意,参数前加上VAR
    Begin
      Teststring:='aaaaaa';
      Result:=True;
    End;
    调用程序是
    var
      aaa:string;
    IF Test(aaa)=True Then
      Begin
        Showmessage(aaa);
      End;
      

  3.   

    Function Tform1.Test(var Teststring:string):boolean;//注意,参数前加上VAR
    Begin
      Teststring:='aaaaaa';
      Result:=True;
    End;
    调用程序是
    var
      aaa:string;
    IF Test(aaa)=True Then
      Begin
        Showmessage(aaa);
      End;在Object Pascal中参数传递可以分为传值参数、变量参数及常量参数等三种。
    你需要的是第二种,把把参数的内存位置传入子程序。
    变量参数与传值参数最大的不同在于被调用者的参数名称前必须加上var的保留字
      

  4.   

    Function Tform1.Test(Teststring:PChar):string;
    Begin
      Result:='aaaaaa';
    End;
    调用时:
    var
      aaa:Pchar
        Showmessage(test(aaa));
      

  5.   

    Function Tform1.Test(Teststring:PChar):string;
    Begin
      Result:='aaaaaa';
    End;procedure TForm1.Button1Click(Sender: TObject);
    var
      aaa:Pchar;
    begin
        Showmessage(test(aaa));
    end;
      

  6.   

    能不能用PCHAR,字符指针来返回呢,而不用,变量参数,
    我知道意思其实是一样,但是我想看看,D里的字符指怎么用.