这个例子昨天正好看了,话说那本书的例子都很不错~
F E/ w0 c& R( W3 b6 ?不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。; i5 d1 N: P8 B
is5 d1 E, N6 J/ D# B! ?0 h( M6 F( @3 \. I
i,no,m:integer; --定义整型0 e( u0 f0 r' g0 W) s% U
Buf:object; --定义object
6 r% u6 q8 |: ?do* |* ]& ]0 G$ Y1 V7 Q) ?
m:=0; ^6 Q& D& b, ~* w# P
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)- l: }% W- n7 T. d
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
- Z2 i9 }1 F, B$ p6 m h if PartsNo=m and no<=PartsNo+PartsTable[2,i] then - z, H& x! [7 G" q' p
@._From:=PartsTable[5,i]; $ r4 |+ {3 ], K. b( U( t
@._To:=PartsTable[6,i];
; h; N+ a9 K% p8 S- v% Z if no=PartsNo+PartsTable[2,i] then % O2 {) }% ]! s( ?
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)1 ~% s$ P; k; G5 l
8 C5 p) ^: [, L/ y( D& K M
end;
1 f8 E5 v. W5 E i:=PartsTable.YDim+1;/ k/ q1 `0 m& Q6 R3 v" M
end;' B) J2 q$ ?5 l' |6 a
m:=m+PartsTable[2,i];
) ?3 I. e# M& m next;
7 r. _) J" A; G# T9 q! T
' V! e% a* _. k Buf:=str_to_obj(sprint("BF",@._From));, a& }8 W# }) R. {2 }
@.move(Buf);: e- R7 Y3 J4 p' Y* k! U
end; |