这个例子昨天正好看了,话说那本书的例子都很不错~/ N7 }& b6 [6 ^, x
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
4 F+ o6 g9 m7 W# Sis" E- Y! b5 l: y% Y$ X, H
i,no,m:integer; --定义整型$ D' t- r; D3 P5 ~0 w( I
Buf:object; --定义object
% m [( N; _* A' Y7 {6 ^* hdo
) W. w: l9 j8 {8 J2 T! P m:=0;) v" j7 G( L" M) a) i$ `0 t W
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
/ A( N6 ` f x for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
- _0 F1 j' e2 O# C, C if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
4 h, q8 P, g. o+ n+ l @._From:=PartsTable[5,i]; ! t4 a* @7 j; q2 `! h! h# Z
@._To:=PartsTable[6,i];, _7 A4 G; y" ^3 X6 D6 k
if no=PartsNo+PartsTable[2,i] then 5 Y; `, U! x; O& U' |/ c- o
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)8 D& ]5 G% X8 K. v
; x$ H( x |1 ^* z c
end;9 I& W. |) J" I9 J* {/ |
i:=PartsTable.YDim+1;9 x. e$ w1 V7 Y/ q, ?4 j
end;
. \ c ~. T1 V m:=m+PartsTable[2,i];) J- U# I9 r; j& }3 R
next;
; \. i% q5 U1 d1 M* X2 @. T) {* o- _ 0 t5 H& M2 b8 k- C) p
Buf:=str_to_obj(sprint("BF",@._From));9 s g4 l" T9 @8 l8 E
@.move(Buf);6 x( U1 ^3 g, t: h! s4 y M
end; |