这个例子昨天正好看了,话说那本书的例子都很不错~
- \% O8 a7 u) q) _( C& R3 }不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。% y4 {8 V" q% N+ S- ~! j
is/ e7 g+ g, y% P9 K: u8 V
i,no,m:integer; --定义整型
* |% p. [. [! ~' d" Q Buf:object; --定义object
, Q- v' T; e1 R8 b x' K Ldo9 Q' h# Q! f; A: f
m:=0;
# {0 b$ u2 v% Y5 F# G3 `2 D! ] no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外), T+ J, A% b4 Y/ {( t" V% c) I
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
% q) b+ c, e- v& Z if PartsNo=m and no<=PartsNo+PartsTable[2,i] then & Y, V/ h2 ^- a" g* F5 X1 P. [
@._From:=PartsTable[5,i]; # V* z2 T% O2 C c* P7 }; G, o! e
@._To:=PartsTable[6,i];: {$ q2 W, a0 e: c" N! l+ Q
if no=PartsNo+PartsTable[2,i] then ! V& X( l4 o& E, t
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
* C% D, S- q2 a9 _% w0 ` L: ^4 R/ _! X# B. w; c
end;
) s* E4 Z4 }3 y i:=PartsTable.YDim+1; S. g: O4 Q5 {: k4 l) l' S
end;( [- L, x# U' }% p
m:=m+PartsTable[2,i];/ x l- {8 _, Q8 P6 B" ^. N. h* U, u
next;
! U. d4 G. _ j7 c8 N
+ a8 ~; ^- o4 }0 `! `- g2 G9 W Buf:=str_to_obj(sprint("BF",@._From));; v. J- J. R* w. o+ Y
@.move(Buf);7 e a; v, l6 j3 {- U
end; |