这个例子昨天正好看了,话说那本书的例子都很不错~
8 m# o4 V. R3 x, f不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
8 R+ z# b' v' n$ B6 r4 ~( a/ Zis
/ f3 k* ?! A# ` [ i,no,m:integer; --定义整型' X& b* _8 n$ r/ T5 F# q
Buf:object; --定义object& f9 ^ @$ t( q. ?. I
do9 i( M, h6 J) R* }. H
m:=0;
: T7 H. q# h+ q4 ]) W7 g5 k no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)3 q: p* k# i' ?4 e4 g+ z X
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行9 \' ^7 p3 w0 l% ?3 q7 d. R* Q
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 7 L8 L! r$ e1 M' |/ r) G
@._From:=PartsTable[5,i]; * r5 o4 [( I* h+ ^
@._To:=PartsTable[6,i];% G3 c M D+ g8 a" w. N
if no=PartsNo+PartsTable[2,i] then
8 r0 _$ s& O7 h* _) O) p PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)# n% M$ Q, w$ D" K) H4 D0 Y7 v% t
2 K, l9 z/ a2 [: w: {* x3 I/ s end;4 W0 f' F0 \( Q! e7 x
i:=PartsTable.YDim+1;8 M2 V g1 s6 {; @9 m7 a% {
end;
0 ^8 K* N/ I0 d/ S6 Y" e m:=m+PartsTable[2,i];
7 F+ w, w$ w$ ~9 g0 y next;
- I* U+ [/ k9 r6 F% P! c4 W+ U
6 O; q5 a5 s' j Buf:=str_to_obj(sprint("BF",@._From));
) U# R! z: g8 J0 }/ D7 v8 e @.move(Buf);) @( S" s8 }' o+ e+ \
end; |