这个例子昨天正好看了,话说那本书的例子都很不错~
7 p/ p! X# c9 _" I; P y不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
2 n3 Z% P& ]( K1 O- w/ gis7 l# n6 I0 E7 G, P( r4 c% m9 g. F
i,no,m:integer; --定义整型
3 i4 U' J' m6 J1 R" w0 O) H Buf:object; --定义object% z$ r& N# T5 P
do% R; d# `! v, ]
m:=0;4 P0 l& E& z' d0 O8 y! s
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
_* M2 S8 }: s5 v- F3 @3 \ for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
" I: b1 S! i) y if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 8 O& G6 ~! L: ~, y/ a
@._From:=PartsTable[5,i]; , v0 R4 [: d- w1 `- D8 ^
@._To:=PartsTable[6,i];1 T9 u0 ] a" X3 m/ S
if no=PartsNo+PartsTable[2,i] then
# \) Z1 U/ |1 r4 ^1 V0 I# s0 D PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
( T; T+ N% D# e: K! \5 [& |& p
# X7 K- H7 m( o$ L' @! m% p end;0 u* X, H: j5 }. ~! z
i:=PartsTable.YDim+1;
& L: M4 O2 r9 p1 { end;+ @6 T& `9 b/ S1 w" o$ E
m:=m+PartsTable[2,i];' p& l% u5 y6 c" X$ d" M+ C, w
next;* }7 _2 K# m# L* h& i( T: z9 \
' p. d, T4 |4 S& f Buf:=str_to_obj(sprint("BF",@._From));2 K- L1 Z3 `, f6 x! F
@.move(Buf);* n% T( N9 g3 C; S6 b
end; |