这个例子昨天正好看了,话说那本书的例子都很不错~, K3 J1 T& x6 [, |
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
$ Q; ~: @! _$ _is- m2 J; L6 y. Q* ?6 z# Z1 R
i,no,m:integer; --定义整型, X% j7 [: A/ W) ]8 U. h* u
Buf:object; --定义object
' X% G% H' F) C% [do; y( G7 Y% Q% s3 F5 e' w( M6 d
m:=0;
6 r9 ?% V% C, J no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
: \' [4 w2 _& }7 O2 `" f for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
, h( W1 r) i+ r6 K# L, ? if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
. w& a9 H, k. U2 i* Q% w @._From:=PartsTable[5,i]; 3 i. S( `/ Q+ [) a0 @
@._To:=PartsTable[6,i];
7 l% L# x! r0 B3 w if no=PartsNo+PartsTable[2,i] then
* W4 U; |& B( ?7 V! ~ PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)4 r3 Z; v5 q7 ~! d! c
3 V8 x! d6 Z V' a. k X5 X
end;
% P' K" G E3 {- p) e' B8 D i:=PartsTable.YDim+1;3 \' J: _2 f' T
end;
/ h# u0 c& Q+ \9 [# Z9 o/ A m:=m+PartsTable[2,i];
" ~7 a6 Z/ i+ g0 y" V2 @ next;
( U6 y/ R1 t3 [* { L! r / v/ w9 w( x, c( K
Buf:=str_to_obj(sprint("BF",@._From));, }5 ^0 r4 Y% l9 w
@.move(Buf);
8 a& ^9 G1 Y; f6 M& r4 T: {( m7 Fend; |