这个例子昨天正好看了,话说那本书的例子都很不错~; ^! n0 C" ~; b* i. B
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
$ B3 g$ ]! v# G& ~is& b- G* v; t9 G" e; _
i,no,m:integer; --定义整型* i$ m: ^+ E, }. s
Buf:object; --定义object
: t9 M/ k- [, S$ @do5 S }: c7 j0 Z6 U# ?
m:=0;
/ z( {% H6 O: {2 s0 m$ P& O8 u# Q no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
& c7 M( [# r; N4 j1 | for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行; M; R6 Q" M$ y+ P$ r; h
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
1 G3 s5 {; w% Q @._From:=PartsTable[5,i]; 9 ]7 f3 R. ]0 F" H! P
@._To:=PartsTable[6,i];
1 T& U; n: c& _4 Y' o) { if no=PartsNo+PartsTable[2,i] then ! s' Z( o9 j9 w
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
/ D7 z) ^) B, k: q, z( E& r( L
2 k- X: E' L! W7 p1 O) [3 R end;% n* r1 U+ v: C" C3 n/ u& _1 q" h
i:=PartsTable.YDim+1;3 I; a o7 _1 J1 W; _, y
end;& E7 [5 Q2 R; p
m:=m+PartsTable[2,i];
" B4 {+ M# a9 y O& R next;: p- ^+ T6 y& M; r7 H
+ P; F. d, u+ t( P5 p
Buf:=str_to_obj(sprint("BF",@._From));9 w& L% ~# y0 C& A h' I0 {
@.move(Buf);
. n2 q3 r$ w" z, ^end; |