这个例子昨天正好看了,话说那本书的例子都很不错~
: P& F4 J6 i$ V不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
, `4 z1 f0 j, q; ~6 I9 pis0 q+ E. @$ q k' }/ l1 n$ E
i,no,m:integer; --定义整型
/ Y4 B6 N# w& h" r Buf:object; --定义object. F5 s" s0 k f7 r4 |( l: a
do% f: @! O/ q, x3 d! M# w
m:=0;
: Q" u6 @$ y+ c4 \$ l" Q no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)2 V) |4 H& v# ]
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
: N3 ~. Q Y) I2 ~9 n l if PartsNo=m and no<=PartsNo+PartsTable[2,i] then - W% P5 B! J ~
@._From:=PartsTable[5,i]; 2 L+ ~( h( p6 t, q, g
@._To:=PartsTable[6,i];
+ d. X0 G- x0 L- J2 t8 U' ^# m if no=PartsNo+PartsTable[2,i] then
# h6 Z% ^4 m: ]7 E& J8 I; _* o PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)) I9 `% V3 H+ _" D9 u
% ]. c% c& [5 \9 E end;
* e. H5 p9 U; u& E# O; O i:=PartsTable.YDim+1;
$ Y, M+ l& E( m7 `' U( P end;% M7 M- C! \4 C0 U3 c9 Z
m:=m+PartsTable[2,i];2 x+ l, T6 J& a* G0 X
next;
; I' ?; E- t6 g+ @% C) j, D ! r) @: R% [1 M3 l0 y
Buf:=str_to_obj(sprint("BF",@._From));
' F* X' Q" x, [1 l @.move(Buf);( R6 o9 u, u7 ~% H ?
end; |