本帖最后由 mmnan 于 2012-02-22 12:10:39 编辑

解决方案 »

  1.   

    最简单的
    function getvalue(var username:string; var password:string; var host:string;): bool;
    begin
      username := '11111';
    end;这样外面就可以取了
      

  2.   

    可以定义record,返回record指针
      

  3.   

    type
      TUserInfo=record
        username: string;
        password: string;
        host    : string;
      end;
      TUserInfoList=record
        count: integer;
        users: array of TUserInfo;
      end;function getvalue(var userList: TUserInfoList):integer;
    var
      i: integer;
    begin
      //取用户数据,假定有n个,动态分配数组空间
      userList.count := n;
      SetLength(userList.users,userList.count);
      for i:=0 to userList.count-1 do
      begin
        userList.users[i].userName := 用户名;
        userList.users[i].password := 密码;
        userList.users[i].host     := 主机;
      end;
      result := userList.count;
    end;这种封装好处就是如果用户信息有变化,不用去更改获取用户信息函数参数。
      

  4.   

    借鉴ini:
    result:=';username='+s1+';password='+s2+';host='+s3+';';
      

  5.   

    方法很多
    可以返单个string加个特殊特号分隔,或者返回数组,返回记录,用Pchar,用var ...等等
    下面举例一个数组(当然数据类型一样的是很好的办法):
    type
        TArr=array [0..2] of string;function getvalue():TArr;
    var
      arr:TArr;
    begin
      arr[0]:='1';
      arr[1]:='2';
      arr[2]:='3';
      result:=arr;
    end;调用:
    var
      arr:TArr;
    begin
      arr:=getvalue;
      showmessage(arr[0]);
      showmessage(arr[1]);
      showmessage(arr[2]);
    end;
      

  6.   

    最简单的
    function getvalue(var username:string; var password:string; var host:string;): bool;
    begin
      username := '11111';
    end;
    这样最简单,传进来值,在函数中改变,外面再取值就是变化后的了
      

  7.   

    Delphi函数可以返回任意类型,包括自定义类型,不需要显式使用指向类型的指针。
      

  8.   

    function getvalue(var username,password,host:string;): bool;
    1楼的方式简单实用
    使用记录型也不错