这个例子昨天正好看了,话说那本书的例子都很不错~
, y& }" W; V9 @+ n9 \不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。+ Q0 w: g0 P( \- [' @
is _% o2 i9 d0 ]- c
i,no,m:integer; --定义整型
0 R3 l, [$ r* r# D& Z( x" ` Buf:object; --定义object
# R' W- v( }4 t( _) G! o* Ado
, ?4 d: S) G* O- S m:=0;
/ `$ R, {4 E+ ?9 Q0 H3 \5 { no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
7 C4 Q2 v [2 F: b8 G for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行% u% S: g; N2 I9 b& l
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 8 |$ N6 N' H) L. F
@._From:=PartsTable[5,i]; # J1 x' G0 Y' q' |; b
@._To:=PartsTable[6,i];
. {& B- u; V9 c: H& P# x% q6 G if no=PartsNo+PartsTable[2,i] then 5 L1 f3 k2 ~5 F- p% X3 g: s2 h5 ~
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去), j; V- _ X" T# C+ E! ]0 J
) S8 a$ p4 n, G' A. |: d; s* u% i end;
$ Y* g9 P* M3 Q# L" a- N) \ i:=PartsTable.YDim+1;
; A! m! N2 f$ k1 K6 S end;
5 f& Z# c$ I- s) j/ [8 L6 |$ T0 g m:=m+PartsTable[2,i];* n' B+ G* U6 {, d2 D! l7 N' d6 _
next;: L y$ T! S0 q) S
1 U# J; Z" h* }- N- g Buf:=str_to_obj(sprint("BF",@._From));
) Q- m* m% _ _" S6 u: j7 K$ f @.move(Buf);
" I0 k& e9 Z& \3 f+ o4 A0 z: dend; |