这个例子昨天正好看了,话说那本书的例子都很不错~
7 l1 j0 N7 x( |不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。; P# I$ b$ T/ w( `% Y
is1 Y* [/ C2 j1 \# S/ l2 d
i,no,m:integer; --定义整型7 S2 Z4 A. h7 Q8 R- w r8 d
Buf:object; --定义object9 E8 k( n: X- t5 V! b
do$ j: d' {* [6 p8 r: P6 s; z1 P: ]5 h
m:=0;. Y1 Q. H& D; a7 k) V) ~9 d, z
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
% x& M4 J( R& V* G) C for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
! T( j% q$ j: c/ }1 V if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
, e) [4 E& \/ w6 N2 w) a S7 q @._From:=PartsTable[5,i];
/ S' f" B. O0 L a! `2 O1 Z @._To:=PartsTable[6,i];+ ]' a- M! G- t$ X! \6 @
if no=PartsNo+PartsTable[2,i] then
8 ]2 i8 N+ z( l9 U0 g: U PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)$ _3 T1 b+ D% W" T* l# k* |' e
/ y+ Z4 H! i3 ~! h' I* a
end;- g) _3 \/ L/ B4 m+ Z5 P0 e
i:=PartsTable.YDim+1;
% Z3 x* X/ \5 r1 x) u$ M. C end;
! z; @: |! o+ s @- {6 O; m m:=m+PartsTable[2,i];
' W7 A( e$ f0 q next;. N/ }4 A( ?8 x9 n: T/ X. R* ~
" J& i0 ^: j: o2 `6 f* @/ m Buf:=str_to_obj(sprint("BF",@._From));' f! `9 q( n3 X d
@.move(Buf);
0 ?% P, [$ a9 t* Tend; |