这个例子昨天正好看了,话说那本书的例子都很不错~7 K' j, ~8 d) E5 p% G( \
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。0 E% Z) \8 c8 n, w6 V
is
% ?" C3 W4 ^; k+ J8 G0 w i,no,m:integer; --定义整型7 i c. U, [5 y' \
Buf:object; --定义object- O, Z' g/ g5 l+ u3 w2 h
do
3 W$ z1 G0 Z# a" ~( B6 B m:=0;4 p% d) K$ Q. I7 O
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)7 U0 L# }' U8 e& U# }6 D/ q
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
3 i* M8 u, t1 W6 @4 q if PartsNo=m and no<=PartsNo+PartsTable[2,i] then $ B. F$ P0 z3 M0 U
@._From:=PartsTable[5,i]; 9 O5 l# z) S, {5 \9 X) B
@._To:=PartsTable[6,i];5 H) m8 k) D4 q$ Z! j) r @( m! B; c
if no=PartsNo+PartsTable[2,i] then
" b2 p9 a( G* P% Q* { PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
7 `. f3 j8 J8 e( I$ X3 M2 s# Y! \ e0 v, g; q0 c) ]
end;
5 F% f# P% G3 D( c5 p% v$ {: ^ i:=PartsTable.YDim+1;( q7 ?7 v, ]& y
end;
7 y, t1 g5 h2 N' N- S m:=m+PartsTable[2,i];
* v. }$ l/ }2 ?. L/ ` next;$ Z, H: v( L8 r$ E5 |
3 j K" L( G9 J3 ~$ H Buf:=str_to_obj(sprint("BF",@._From));. |. p8 P8 Q6 K- J! x0 _
@.move(Buf); V5 B1 c1 r/ c+ T7 D
end; |