type 
Tman=class
private
 fid:string;
 fname:string;
 procedure setid(id:string);
 procedure setname(name:string);
public 
publish
  proprty id:string read fid write setid;
  proprty id:string read fid write setname;
end;
现在想实现这应的function;
function modiman(man:Tman):Tman;
begin
man.id:='0001';
man.name:='anhui';
result:man;
end;

解决方案 »

  1.   


    proprty name:string read fname write setname;
      

  2.   

    uses U_man;
    ...
    function modiman(man:Tman):Tman;
    begin
    man.id:='0001';
    man.name:='anhui';
    result:man;
    end;
      

  3.   

    不用返回的,在delphi中对象的调用是地址传递,所以
    function modiman(man:Tman):Tman;
    begin
    man.id:='0001';
    man.name:='anhui';
    result:man;
    end;
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>直接这么写就可以了
    procedure modiman(man:Tman);
    begin
    man.id:='0001';
    man.name:='heluqing';
    end;
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>这时候参数的值已经发生改变了
      

  4.   

    modiman(man:Tman);上楼说得对,
    Delphi 除了简单类型 int,string 传递值外。
    对象都是传递的是引用。 
    也就是说,对象调用内容变化,那么最后结果会变化。
      

  5.   

    uses U_man;
    ...
    function modiman(man:Tman);
    begin
    man.id:='0001';
    man.name:='anhui';
    result:man;
    end;
    这样就可以了。
      

  6.   

    如果是这样的,
    封装在dll中:
    function createman:Tman
    var man:Tam
    begin
    //more code
    man:=Tman.cteate;
    man.id='0001';
    man.name='anhui';
    //....morecode...
    result:=man;
    end;
    能性吗;
      

  7.   

    ye以及相关的实例的free应如何去管理。
      

  8.   

    上面有点error.如果是这样的,
    封装在dll中:
    uses man
    function createman:Tman ;stdcall
    var man:Tam
    begin
    //more code
    man:=Tman.cteate;
    man.id='0001';
    man.name='anhui';
    //....morecode...
    result:=man;
    end;
    能行吗;