这个例子昨天正好看了,话说那本书的例子都很不错~
) O7 T# B9 [0 X3 ^3 k不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。4 f c$ O$ D. \% `: z9 @
is% y% w2 ^' V$ g; k
i,no,m:integer; --定义整型" M _) V" q+ `- [8 b
Buf:object; --定义object/ A, i y( n2 W/ m
do5 r' d/ _* ?7 Q: H! a6 P" L
m:=0;
! A' U3 @4 n9 ^8 i; ~ no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)1 |! ?1 t4 ?) ?. C4 H
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行' z \- J4 p& ?5 N6 K
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then $ b; G2 A9 J& m9 G3 ?% L& O
@._From:=PartsTable[5,i];
1 \! m: v2 S1 _! x @._To:=PartsTable[6,i];
, x8 e) e( [" I# }: X' o if no=PartsNo+PartsTable[2,i] then
( a6 G3 p* U' I8 Z$ u1 z PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
Z# d; v [' L, K% @% t3 Z, B) c1 m" T3 s6 [
end;% Z4 r% P% A5 o- p
i:=PartsTable.YDim+1;
0 F; U" x* C* N; g) g end;1 z5 U3 X- V8 {% |2 i% N
m:=m+PartsTable[2,i];
& ~) G! [2 S6 k: Z" s3 [$ k; n next;) B" w3 D9 H, E
2 e, e$ i0 g% Q Y' b Buf:=str_to_obj(sprint("BF",@._From));
, s* A3 B* i5 e& } @.move(Buf);
+ R& K8 h, O2 Send; |