这个例子昨天正好看了,话说那本书的例子都很不错~. L5 U5 x# C& T' @7 `) o) {1 J& X
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。; b+ p j3 r5 g6 ]
is! ?: H! `7 A9 Q5 s0 ~
i,no,m:integer; --定义整型
: a( v' a% s2 T Buf:object; --定义object
$ H# V7 ~* n( ^$ U7 P" `do- {/ g2 k, O" J2 F4 j- r. w
m:=0;: v: \; g" z/ P$ D/ k
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)/ ?" f2 X7 m. V8 G* c
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
4 d' q* Q+ T3 W9 i) ^ if PartsNo=m and no<=PartsNo+PartsTable[2,i] then $ I. u) x4 b; u5 i2 [& ]
@._From:=PartsTable[5,i];
1 @% f" w8 r" N' A! x7 O @._To:=PartsTable[6,i];
7 G/ C- i2 k; O; z9 ~; `% [: N7 K if no=PartsNo+PartsTable[2,i] then ) y, q* Z, g- M. _
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)# {4 r1 v9 D, o* e2 g6 g
2 L/ ?. T8 C! _0 S' Y
end;
5 W! i* z+ p" A- M i:=PartsTable.YDim+1;" z- @- |4 r, J- L
end;% c$ u' l5 f/ U1 r2 v
m:=m+PartsTable[2,i];" N" g. J9 k, u- n# |" M
next;
0 ~8 @1 W1 y% R$ E / c- @, B# n0 b$ r, W: m) c
Buf:=str_to_obj(sprint("BF",@._From));6 H- |! K! y0 J5 Y0 o
@.move(Buf);
; Y- O( l: F H5 O: [4 @end; |