这个例子昨天正好看了,话说那本书的例子都很不错~' A1 c" _4 H4 r8 W W: s
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
8 h/ z+ Z! E/ c7 Dis: X: I, q+ h9 I$ }' X
i,no,m:integer; --定义整型- H4 `6 L" ]$ s( ]3 {& _
Buf:object; --定义object
# N2 Q5 a" w7 e* e7 hdo% n7 w6 C6 s! \- R& x8 r3 Q
m:=0;) |3 \: H) S* \( s' ^
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)8 { o& i, h& z4 D
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
7 c) r/ M/ a$ R0 P* P, K8 m; y1 Z if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
9 F7 J: _# p+ N5 Z/ i7 \( I @._From:=PartsTable[5,i]; # b h9 v9 F4 s R" F
@._To:=PartsTable[6,i];
9 l8 M- F" D! p. o if no=PartsNo+PartsTable[2,i] then ! T3 U5 b& |$ i4 V. i* R" f+ x
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
; }! S$ {1 i+ z5 j; N$ C' N- F9 n4 w9 X6 U" _! a' z% M
end;; l6 G+ D4 ]: n9 |4 H. b. S3 t. _
i:=PartsTable.YDim+1;1 W3 ?7 l: R( N0 l& }, u0 e; Q
end;- J3 s7 U; j4 ~
m:=m+PartsTable[2,i];
* |& q2 Y6 P" O' @" |- s1 q next;
3 O( t1 Q3 K8 M, {. N0 G% \
: M, Z% v. N. n1 o8 s6 l) z Buf:=str_to_obj(sprint("BF",@._From));
& n8 Y0 |. U u1 J( ^/ j @.move(Buf);
5 I4 X/ w+ w) H J$ Y/ \( E" kend; |