这个例子昨天正好看了,话说那本书的例子都很不错~
* Z! s7 ?! a, E* o3 _+ \7 Y不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。7 u5 G& y0 S( K" L0 A# t
is Y$ u( S, e+ y+ t, `
i,no,m:integer; --定义整型% e. Q1 w; v( Y' W4 e7 J! W0 G
Buf:object; --定义object& d4 C; L4 Y) |+ n6 H
do
; {' N0 y) F! x m:=0;
6 ?3 ^& x) ]( o, t: R# B no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)4 E4 P% ]7 t7 c0 Q8 f
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
_: X0 ~ J; b1 q0 r) H if PartsNo=m and no<=PartsNo+PartsTable[2,i] then * G8 `- N7 H( e0 M( O$ I( o4 U
@._From:=PartsTable[5,i];
' m7 |5 \; D# P9 g/ Q% [ @._To:=PartsTable[6,i];
1 g7 p9 w1 n: f7 c. i3 ? if no=PartsNo+PartsTable[2,i] then ; f! x: W1 n2 F0 } {
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)( e5 ^7 ~4 T k8 Y9 `; S
7 n5 M' e( b. i5 O0 Q, A end;
* S( G, q! A) l H i:=PartsTable.YDim+1;
- ^& d/ K$ q7 t" e end;
7 M( l+ g4 P9 T# {: N1 A m:=m+PartsTable[2,i];* j, c3 o# q, D$ Y4 A
next;, V( E0 O1 A, ?& T8 b; z J% s
* g( I1 i$ y8 |; d5 m: H. o+ B- X Buf:=str_to_obj(sprint("BF",@._From));
# s5 C( D' D! |/ M* p @.move(Buf);
0 P4 } {* y9 H' ~5 E v. Z+ x% Iend; |