这个例子昨天正好看了,话说那本书的例子都很不错~
. i- M7 i) u1 ]9 x* V不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
5 `* ~+ f, {4 k7 I4 nis
- u+ {4 w% {9 K3 d i,no,m:integer; --定义整型+ J, N, `8 D+ f8 e/ r3 p! R
Buf:object; --定义object
8 Z5 ~% C0 O) ?: a7 z$ r& N5 ^4 Pdo* E" D: F% f5 p7 [
m:=0;& \6 a7 E( E) l
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)6 R l* O9 [( K# V
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行% j. h7 i1 b3 F+ ~' p1 L; m
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
2 }6 U: `" C+ ^3 c4 N7 ?( V$ D# { @._From:=PartsTable[5,i]; 7 j. s: n9 v8 @8 K' k+ H# z0 Z
@._To:=PartsTable[6,i];
+ M- V! Q5 _! G8 l& \ O: h if no=PartsNo+PartsTable[2,i] then - C* g, |4 E8 j
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
3 t- n, f8 ]5 G+ c
9 s; W* Y2 W, @! H P1 x- C) | end;; a! {2 W1 j* X6 ?! t. N
i:=PartsTable.YDim+1; r" J0 c0 `2 [: l7 m
end;
) [- a/ c- ?3 V3 L- J m:=m+PartsTable[2,i];2 w( G9 X r$ s
next;
) N4 Q; {# c: H" [: n/ p: W
! s% [3 k0 y: I# F% U Buf:=str_to_obj(sprint("BF",@._From));' ~7 i2 ]1 z2 g8 P. x. _, a
@.move(Buf);! o3 X# h# Q# W4 O; q- a
end; |