这个例子昨天正好看了,话说那本书的例子都很不错~% x+ k; J% `4 r1 U2 c- x
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
, J, g6 l, E. h N/ sis
" Q- d6 h4 @# t+ g; c, ^* N5 [ i,no,m:integer; --定义整型2 W' f! Q/ P; F) G9 D* C" a- Z
Buf:object; --定义object" e; G0 K9 |# w9 o' r+ {6 O. V- m$ Y
do% D" E+ f0 s8 C4 z5 P
m:=0;% s5 _2 G# P7 G( U0 r
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)3 x/ A! }% U2 b: [! l8 R
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行, t1 R5 ~( y% ?/ _! v0 r
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 8 e) ^" z' h7 |) E0 B R
@._From:=PartsTable[5,i]; # o. T* R% [9 i8 P# T
@._To:=PartsTable[6,i];8 T0 g- D, j1 D+ A" o* _
if no=PartsNo+PartsTable[2,i] then
: Z; S e2 }/ k, B( o) k. \% C- A PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)9 X% v; `! [& d1 ?" R
! V6 c- Y% a7 `2 b
end;2 I. M3 q2 A6 I- y
i:=PartsTable.YDim+1;
6 O6 l" O0 E0 j end;
9 W Z) Z$ }) y- @& i$ Q4 z! |% h m:=m+PartsTable[2,i];5 X6 M U/ w5 T% c
next;
* o: \; A: A3 N# x& X+ o8 R
+ M A, s) Z. U' q2 ^ Buf:=str_to_obj(sprint("BF",@._From)); s/ B% O" P% l2 a) u" n$ _
@.move(Buf);
1 E( A, J- E+ A- y6 \% bend; |