这个例子昨天正好看了,话说那本书的例子都很不错~3 P; y9 b, \8 \4 G8 k7 u/ @' x
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
) y+ g: [9 K; h# v1 E+ a+ Gis
$ e, c4 l2 N3 U0 j i,no,m:integer; --定义整型/ ^5 R: B% \/ a% V/ ^" b1 ~( @1 F
Buf:object; --定义object
) c8 K3 S, C3 ~0 \' d' @* C: U( fdo% g2 G* t4 L. c
m:=0;7 @% Q' q6 ~8 ^/ H6 t. i# j
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)0 A/ J F3 R/ A7 F( L
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行* D+ ]6 L+ t0 u: t2 r' u
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then , y9 L2 ?6 d3 [" x
@._From:=PartsTable[5,i]; " ]# t; ]7 m5 o6 `, y0 q' J( I
@._To:=PartsTable[6,i];
- V( l. m! u A) R8 h if no=PartsNo+PartsTable[2,i] then 0 e4 o1 }6 I- n6 O
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
* X B; V6 U5 y. I8 Z8 h/ t' M7 P; B* j: Z9 w6 V$ J8 w. y9 b$ J
end;- X7 T5 C" c" q+ u1 D- Z& R9 N$ \
i:=PartsTable.YDim+1; i( R# r) [. } \5 E
end;
: M1 e3 [ e8 t) w2 P& s m:=m+PartsTable[2,i];7 V( {0 ~9 C2 ?
next;' S+ d7 A* k- G* B/ |
- Z! {% r, a% {% S1 l/ n! X1 I Buf:=str_to_obj(sprint("BF",@._From));1 a6 e, K& k: x- l3 e8 X5 D
@.move(Buf);
5 a* Y, a0 V* dend; |