这个例子昨天正好看了,话说那本书的例子都很不错~
7 h8 b5 K! v9 Y+ K不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
, x0 V( ^+ a1 X' l0 h P6 |is
- G8 _( D0 s* G% L/ e1 E7 R i,no,m:integer; --定义整型
1 t, e: W7 _6 \" E/ C! E: T) v9 N" ~# ~ Buf:object; --定义object
8 ]+ T: B2 c1 |4 Ado9 d' ? S' o5 h2 z! W i
m:=0;8 a% ~# S0 a2 x3 w9 y) I
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)$ K1 p5 {3 n/ _' S0 G# B, x: \
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
0 D! P0 r' q" } if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
- g) @0 ^4 \5 t. X, A: y/ O @._From:=PartsTable[5,i];
! Q, F2 I6 @; l) e @._To:=PartsTable[6,i]; n2 C& i" |( Z Q4 N6 I) @' U
if no=PartsNo+PartsTable[2,i] then
/ u, X, P; q, z0 K$ b8 j& [ PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去), a1 T) [) e1 j0 C0 E3 z
8 N, v7 K0 O% L: c. l
end;
4 ] O8 q4 T! v" V- h- F$ _ i:=PartsTable.YDim+1;
$ h" j2 B) `( ?) V6 o7 }* B end;
+ }' d" U8 l9 r" C1 k) f m:=m+PartsTable[2,i];0 g/ |3 U7 {( N8 i) o% L
next;
8 b2 w% ^: w8 `' @9 H 5 b0 k! J: H. v, r' T5 i3 `5 x
Buf:=str_to_obj(sprint("BF",@._From));3 u9 R+ B8 p6 x7 c
@.move(Buf);
! J- Q" |% W# Y' D& i3 r& Fend; |