delphi函数能不能输出多个参数?(50分)

  • 主题发起人 主题发起人 LJH1978
  • 开始时间 开始时间
L

LJH1978

Unregistered / Unconfirmed
GUEST, unregistred user!
如输入
A,B,C三个值
得出A1,B1,C1三个值
A1=A+1
B1=B+2
C1=C+3
 
用var
procedure ChangeABC(var A, B, C: Integer);
begin
A := A + 1;
B := B + 2;
C := C + 3;
end;

如果不想修改输入值:
procedure ChangeABC(var A1, B1, C1: Integer; const A, B, C: Integer;);
begin
A1 := A + 1;
B1 := B + 2;
C1 := C + 3;
end;
 
procedure TDM.OutInt(var a1, b1, c3: Integer; a, b, c: Integer);
begin
A1 = a + 1;
b1 = b + 1;
c1 = c + 1;
end;

这样不就行了吗?
 
定义记录来输出:
type
ROutput=record
a1,a2,a3:integer;
end;
....................................
function ChangeABC(A, B, C: Integer):ROutput;
begin
result.a1 := A + 1;
result.a2 := B + 2;
result.a3 := C + 3;
end;
 
加var就是传址,可以理解为如果加了var,那么这个参数在函数过程中可以被修改,如果没有加var,修改了也没用,回到调用的地方,还是原来的值,推荐楼上结构体的方法,比较灵活,要不然,参数变了函数也要变,另外在Delphi还有一种方法是加out标识
比如

function Test(out handle: HWND):HRESULT;
这样就是可以传出out了,具体delphi的帮助说的比较详细
 
out 修饰字呢?

QureyInterface不是就有个out修饰字,但我不知道准确用法
 
不管任何语言,函数都只能输出一个结果,要么是一个具体类型的数据,要么是一个结构
 
Type TmyResult=record
A:integer;
B:integer;
C:integer;
end;
Function Test():TmyResult;
 
如果对值控制的比较好可以用var ,要么就用record吧
 
什么类型delphi都可以返回的
 
变参可以
 
传递的参数用地址就可以保存数量的内容!同意楼上:0桁骀
 
你要达到什么目的就说,
Delphi 基本上能够做到,
你不必问这样的废话问题.
 
當然可以,采用引用的方式:
就是
function(var 變量名... : 類型): 返回類型
關鍵就是要加入一個var,這樣,如果你調用這個函數之後,再把這個變量使用時就是改之後的值了!
 
多人接受答案了。
 
后退
顶部