全局变量不能做形参吗?(50分)

  • 主题发起人 主题发起人 L.Ming
  • 开始时间 开始时间
L

L.Ming

Unregistered / Unconfirmed
GUEST, unregistred user!
函数:function GetState(ACount: Byte;var AStateAry: TStateAry;var ANowState: TNowState;AUseForInsert: Boolean = True): byte;
AStatAry,ANowState这两个参数是一个累计数,所以用形参传入,
TStateAry类型是TStateIndex(自定义类型)内的一个类型.
TNowState类型是TIssue_State(自定义类型)内的一个类型,
IssueState.BallColor0 := GetState(BallColor[0],DM.StateIndex.BallColor0,IssueState.NowState,False);
结果出错[DCC Error] uAddRow.pas(380): E2033 Types of actual and formal var parameters must be identical,
如果在过程内再定义一个变量 AStateIndex := DM.StateIndex就OK,但是如果这样的话,累计只是AStateIndex而不是DM.StateIndex了,我应该怎么做?
 
传指针,大概这样
function GetState(ACount: Byte;var AStateAry: PStateAry;var ANowState: PNowState;AUseForInsert: Boolean = True): byte;

IssueState.BallColor0 := GetState(BallColor[0],@DM.StateIndex.BallColor0,@IssueState.NowState,False);
 
后退
顶部