这个例子昨天正好看了,话说那本书的例子都很不错~
1 ^8 q+ w& K& ` Q' R/ U不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
- g/ i) ]9 f, E$ u6 lis. B7 z! Y% m7 K9 Y- D4 x1 q
i,no,m:integer; --定义整型1 g R( ?5 |& h
Buf:object; --定义object4 U, w4 W7 p- O* q* D0 C+ k
do# A4 E B3 ~! \4 f) V) ~
m:=0;
/ ]2 a/ t3 o2 t. h, x- |. R" O no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
+ O9 f2 Q: D1 `" Q! J, b: G for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
) F6 M. w$ z* a+ D- a6 G3 d if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
: }) }7 f4 w0 |* h, ~# Y( b @._From:=PartsTable[5,i]; 8 u; e1 z3 y5 O+ ]
@._To:=PartsTable[6,i];
0 u. @% x1 R5 [4 z: h if no=PartsNo+PartsTable[2,i] then
8 d9 H/ q Q: v PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)1 d9 B+ I/ @( N7 o* o- c+ \
4 w9 Q2 q; \8 A$ k) E0 W, `
end;, i) a0 H/ d$ {) t. L2 ~
i:=PartsTable.YDim+1;
* f* B2 r- M- U1 _5 I- Y end;
! N# O8 Z3 U7 o: Y m:=m+PartsTable[2,i];! X' x6 I3 }$ p, Z/ W% ?
next;6 v- g U* Z: J4 Z" J2 x& O
( ?% \9 ]# }- D% N/ d% e
Buf:=str_to_obj(sprint("BF",@._From));4 v! I% T; N9 n u
@.move(Buf);" y: p0 u7 p* W' _: v' m' _7 g7 z X
end; |