这个例子昨天正好看了,话说那本书的例子都很不错~
, D; \& Z$ Z& T; p- R( y不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
1 Z) ?8 x0 Y3 c- x3 wis
5 {# C+ K; D0 `* ?) d, f i,no,m:integer; --定义整型$ `( `, F3 f6 U/ K( s) C4 S4 m% h
Buf:object; --定义object
* s7 }3 L3 U* r1 d* j0 Kdo
3 ^4 h, s4 C% M2 D9 c3 F" L m:=0;
3 [* e+ L4 X x9 K4 V1 M) m" y no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
3 | I+ E( h3 v2 E$ d% U for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行; b# i3 R3 B) ?& P8 a8 V0 {) i
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then / t; m! h/ a" q, S" V
@._From:=PartsTable[5,i]; & C3 m0 s/ B7 T
@._To:=PartsTable[6,i];1 k/ e! f4 X4 }. {6 g+ W
if no=PartsNo+PartsTable[2,i] then
; J6 P+ R% u# z0 I6 R9 W; D8 f PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
/ n4 z: V; r3 h) Q- l( A6 R1 @9 M6 v: a: ?+ m7 M5 [
end;
# e; r9 C9 ?8 k, E$ k i:=PartsTable.YDim+1;7 b) _" Z- I+ I# f8 Z
end;
$ X$ s8 T% a# b5 R4 S m:=m+PartsTable[2,i];
8 Y( v5 J- `- I5 x, m next;
5 u: M: B6 `# {6 S: k; G) V8 p + f5 A$ l3 O% ]0 }) {, I( T! a+ f
Buf:=str_to_obj(sprint("BF",@._From));$ Z; d4 S$ h# Y w
@.move(Buf);0 b k8 I0 c6 t
end; |