这个例子昨天正好看了,话说那本书的例子都很不错~
( D( t" |, \" }; u3 A. I; B% T不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。) p- ^7 U1 G) O2 I* W/ x9 E
is3 J+ u4 N7 F5 F: l; W( Z) f
i,no,m:integer; --定义整型
2 p1 k( C; G2 f$ K3 U6 d4 I Buf:object; --定义object
3 n6 b2 K- y# b5 mdo
0 a4 e/ `; S6 H2 w7 u1 k, x5 N m:=0;( \) C8 m* n. {) a
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)9 C# r4 |3 k) [* B- Q, U8 a
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
6 N! D- n# U, ]: S2 R if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
0 [/ R2 z! } [/ s* S @._From:=PartsTable[5,i];
, X. `1 e9 }$ X3 J8 B r) O @._To:=PartsTable[6,i];
& y. i" \8 A" @: \+ P( `5 { if no=PartsNo+PartsTable[2,i] then
" W$ ]/ ?, ?5 T' k" H! O. r A PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
0 ]7 t2 V j- d5 N- i3 T
; w3 l6 p, {+ W# Z) Z1 [ end;/ u X1 j+ f3 D, ^
i:=PartsTable.YDim+1;# B: [$ W5 d- W0 N
end;+ w9 v, M( c' g9 c
m:=m+PartsTable[2,i];
. l! {0 R2 U% \- L7 ^5 w) { next;
# X4 w+ A5 Z3 D+ Y, {0 c ) q. m$ Y, Y1 v& G1 o
Buf:=str_to_obj(sprint("BF",@._From));; ]3 S, I* V. W; m
@.move(Buf);
- h0 c6 z1 l5 ~# I* Gend; |