这个例子昨天正好看了,话说那本书的例子都很不错~
; K! A: f" o3 l0 [5 G% [不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
; j9 o. D0 {5 vis) ~) Q! B# f, Y
i,no,m:integer; --定义整型
6 Y3 k! j( z$ D& e Buf:object; --定义object
0 G$ U L4 r9 t* t- n; ido2 K/ C7 e3 i2 l, z; B& X, i
m:=0;( E, K k* N) a W% Q- t
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
5 R* f) R! e' U$ \3 B/ \6 A for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行* Z2 K% L4 h1 @( [4 n
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ( t1 n. O7 L; ?2 O1 `2 w' y! { u- [
@._From:=PartsTable[5,i]; ! @. H: Z2 C6 K
@._To:=PartsTable[6,i];
( k N. q1 p) ?. d! ` if no=PartsNo+PartsTable[2,i] then + {2 y9 Q6 K8 E! m; L
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
9 K$ U8 U" w+ O, d- W7 Q
- k6 G) O6 J2 p/ k) f end;) ~7 j- h7 E* k( k
i:=PartsTable.YDim+1;! Z: I/ a1 r) |! u
end;& f8 u! h) [6 K' ~: Z7 L
m:=m+PartsTable[2,i];" z. E# a/ Q D) N7 ^( k
next;
, R4 O r3 T6 p* b6 G- g
/ R" i( \/ }8 s$ c5 W$ e Buf:=str_to_obj(sprint("BF",@._From));7 l; x, y3 b+ w: P @
@.move(Buf);& l- W k4 O8 d/ y% A0 @
end; |