这个例子昨天正好看了,话说那本书的例子都很不错~0 X! j* s9 F, u1 y/ k( @' O) A7 X
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。1 a/ [) _, s+ x) i! k
is
7 z0 ]4 F5 t7 g5 {& q' J- N. M i,no,m:integer; --定义整型
l% }1 o: A6 }) t Buf:object; --定义object9 E7 n+ ~4 m0 a) p$ ]- L
do, M1 Z' e( d, n6 d5 y
m:=0;
! }9 c( C8 H% S' ~' D2 J4 M no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)( ^& F& P& w. h) I
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
' M8 I/ y6 G& E0 H% O. r I! ^/ s if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
! p, j( i1 d0 S9 T @._From:=PartsTable[5,i]; 6 w6 N% ^5 o, @# I, {4 e7 ~
@._To:=PartsTable[6,i];: k6 j+ Y! f3 q6 ~0 v% `# N0 l5 G% k
if no=PartsNo+PartsTable[2,i] then & f& J5 p/ b) j. e& O! r
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去): P6 X5 G2 T4 Z# I- ~
3 [# R) ^8 Q" C end;
- }2 x' o) E# w( x i:=PartsTable.YDim+1;
8 i; p; Y2 E- L: t: ?0 v end;
: n3 t6 d3 U% W( d! N0 A6 [: Y m:=m+PartsTable[2,i];5 ~8 l9 z9 K' o4 r
next;) M6 K: Q' Q0 X: c
; P8 z$ p c1 i Buf:=str_to_obj(sprint("BF",@._From));
8 P, f7 N# n2 l# {: u& L @.move(Buf);
, h' |& a: X" g! {end; |