这个例子昨天正好看了,话说那本书的例子都很不错~7 ]' S" X0 i) X, d y0 o' w
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
; A3 V2 `8 b, m9 `8 g) E/ Y% j& `5 vis5 C& x1 p3 H/ j# S% F
i,no,m:integer; --定义整型
+ X, F& U- k5 S2 n Buf:object; --定义object
& {- i1 X* B8 B) l4 h) Fdo4 p5 J, {/ P* [0 N
m:=0;
' Q2 M0 X8 ~, j* W1 r no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)) R' W: w5 i, W7 W0 N2 g
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行4 W" ]( p& A9 r. m# _7 A2 `
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
( h) [* x- v0 E0 H$ g @._From:=PartsTable[5,i]; * d! ^2 h! `" U9 j( U4 h
@._To:=PartsTable[6,i];3 g! }# n2 N/ b3 H2 U/ M
if no=PartsNo+PartsTable[2,i] then ' |* s: u" @1 C: k4 G! _$ N# y
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
* d5 J% j; J1 [9 i5 D# S' I( s, |0 n( p' v1 s4 g
end;8 Q6 E C( h& |- N) T8 w0 g3 Z
i:=PartsTable.YDim+1;# |3 @7 y/ m& F$ R" Q- l! B
end;8 I4 Z" z- z4 n7 {' a
m:=m+PartsTable[2,i];' p$ G" o) K( f: n$ J! n4 C5 x5 P
next;2 _) ?& {; g( d* d. \
" `& J& u: F0 K6 u x6 p" n
Buf:=str_to_obj(sprint("BF",@._From));, }% w! k6 V5 r, u% Z5 |$ {5 r
@.move(Buf);, @$ u% x1 D. ^0 x& b% M
end; |