这个例子昨天正好看了,话说那本书的例子都很不错~: \2 C( F1 O# D& ^" u8 F
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
1 @% |8 V- M( \' F, fis4 y6 M; I. }5 W4 x3 K9 P3 _! x8 n
i,no,m:integer; --定义整型
) w! P/ ~+ [5 U! k, I Buf:object; --定义object" b' w L- c5 f0 F& a
do
5 [/ l7 @5 [: S0 W$ b m:=0;
; `- {7 j8 P. X2 ` q& \2 b; @ no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外). t4 v& z/ Y( w$ U
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
2 J& X6 p' D5 ~3 R, n6 f3 ? if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
9 ~0 w0 k: e y. u; W# z7 f/ g @._From:=PartsTable[5,i]; |0 \9 n& W( \8 y+ E. u+ f1 w# x
@._To:=PartsTable[6,i];4 D% w0 s0 e& h! h) v E. o
if no=PartsNo+PartsTable[2,i] then
3 A: ^& q7 v* U3 h. ~* m! O- E, V PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)8 i1 J: R( d: f6 D) L. t/ k/ Q
5 r' l# y5 r: _* ]2 W
end;
* U8 \8 T% O6 Z2 L i:=PartsTable.YDim+1;( n" c# J9 r% u1 f" O: ^6 A( C8 a9 U
end;
( I$ r+ \8 Z, L M# g8 \/ | m:=m+PartsTable[2,i];" C5 `2 I" Z S, i+ u
next;+ ?, \+ j$ F, z# s( S
; x* ~( R% B, ]+ y, {) A
Buf:=str_to_obj(sprint("BF",@._From));
* m7 u8 b% g& D7 r1 R @.move(Buf);/ U, Y1 u8 K Q* j* j
end; |