这个例子昨天正好看了,话说那本书的例子都很不错~8 t( H5 x H; x: D6 r1 X
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。( W; W' v8 _/ p% B! v
is
- C: z% H& @( [8 x* B i,no,m:integer; --定义整型
! Y) A2 U8 h {8 T3 p7 Q Buf:object; --定义object
! U9 ^, Z3 C$ N) U8 c9 Q, J' ?do
* r. X3 Y# [7 ^1 L' N2 E+ o m:=0;
^/ l" n3 g& m4 D0 \) B8 Z no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
5 O3 @% B E4 ~; X9 @4 w" X! O for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
. j- w$ r0 r% H0 y' h v$ u if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ! i/ y! H# X$ @6 \$ q0 m
@._From:=PartsTable[5,i];
: d6 ?# C0 a% a1 i8 L- {: t @._To:=PartsTable[6,i];& h5 @5 g0 s$ W1 n0 g3 S, B2 P: q* n
if no=PartsNo+PartsTable[2,i] then ; [- k I# b9 e& P0 b) ^: M
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
7 ?/ i' K2 N- x3 b% k0 X7 s* ~# X- ^
end;
) f' g8 o) N3 d' \5 Z' f i:=PartsTable.YDim+1;
: O) Y: v) q2 [ end;
& r8 i& Z, f' o; S m:=m+PartsTable[2,i];/ c* Q: l8 F0 C* s! t
next;* x$ n U, z+ c; G* v! A
+ t3 \0 q r9 ?: D, N' F Buf:=str_to_obj(sprint("BF",@._From));, o% d7 q( c# K. O& R
@.move(Buf);
4 q9 B; _4 m: I, H, r0 K$ [8 Pend; |