这个例子昨天正好看了,话说那本书的例子都很不错~
2 _0 q9 R; ]1 M- t r( J7 F不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。. k# `2 B5 ^2 e- ^
is! C: [- C. |7 ^ f6 h& k
i,no,m:integer; --定义整型+ e: s0 R: A* j
Buf:object; --定义object
1 n3 R7 m, D# {2 m, ?+ w, o7 rdo
; O7 Z' D. B" G m:=0;% q/ `4 X: \' o, W) v
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
" m: V2 F$ e7 ?+ a4 [ for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行/ P" j2 r7 ]6 `" c; G$ z
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then & c' l* Y5 f% { j0 ^7 H. p# c
@._From:=PartsTable[5,i];
% h7 k; J% E' Z% | @._To:=PartsTable[6,i];1 r; z, |; ~& U8 |3 E# O: W2 P8 Z
if no=PartsNo+PartsTable[2,i] then c4 a0 o3 P, e8 w5 t, _
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)1 A5 e) e4 e5 w* `3 U( E
& l! _' O( Q5 ?6 J' \7 O end;0 p+ S( @1 p7 F/ l
i:=PartsTable.YDim+1;4 T1 A7 t! m. s* V" z
end;
3 C& N9 k1 d6 ~6 n' @ P m:=m+PartsTable[2,i];
" h, B4 K# k i next;
8 c) Y/ K3 b, Y! {( j$ c0 M 5 n$ b8 e; V5 y- y4 P1 N/ h
Buf:=str_to_obj(sprint("BF",@._From));7 M3 q3 a( Y9 J0 k* I4 h+ y
@.move(Buf);
0 o0 J# i' I3 s) x' cend; |