这个例子昨天正好看了,话说那本书的例子都很不错~/ z" F( M# [/ ^7 r
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
0 t3 k o3 k4 Y, U$ Q0 D9 m7 z6 Z% gis5 V5 q y8 b( F0 h& D* B
i,no,m:integer; --定义整型
K& O. N' o% p' i- [2 S# ] Buf:object; --定义object
0 e+ K2 j' g) W0 F( Ndo
+ @" ?8 o( V8 }0 i! t m:=0;
3 V$ G5 k, ]' c) ?! a" i: g no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
2 F7 I2 \6 {6 t$ C for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行/ ?- g2 f, p+ B( }% o$ s, R# W* X6 ^3 F
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
3 |! B4 ]3 q9 `2 H" z+ x @._From:=PartsTable[5,i]; 2 ^% _, ]+ {% Q9 c% i! U) t9 J
@._To:=PartsTable[6,i];6 d% R( A/ j/ {$ E. | k
if no=PartsNo+PartsTable[2,i] then 3 M: M! r& {9 q, \$ A
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
q& G5 b& ^0 n( [( N f1 e; Q
/ ]- E& M9 G0 ?* A9 h end;
( c- S1 `0 Z: r% Z2 P5 U i:=PartsTable.YDim+1;
1 i: x; s) ]8 d# ?# ]6 {8 ? end;" [4 n6 Q _' o/ y+ Q' [% w
m:=m+PartsTable[2,i];9 r3 d2 b" Y3 Q1 p) U& Z# A
next;
$ C: X% E6 D5 ~4 F+ | * F2 f3 o* a4 ^- d, [
Buf:=str_to_obj(sprint("BF",@._From));+ Q$ h9 T0 z; J5 d
@.move(Buf);* {' e% h! J% l3 [
end; |