这个例子昨天正好看了,话说那本书的例子都很不错~1 t+ ~, ^, S, H' C! t- R: F* X
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。: W; L! c, G% r7 _
is
9 ~" |! o. F2 p+ N p i,no,m:integer; --定义整型7 F: P) g2 d/ p+ j$ U% N6 j
Buf:object; --定义object
+ Y; ?& X1 c+ C/ ido
. Q: ~1 l3 g& @" N9 J$ y m:=0;& X5 J3 U: M6 j! X7 ]: b
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
# g7 `9 y- Q- T1 R for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
0 u( I9 Y0 r6 l if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 4 l- O# [% R5 n ?: l/ V
@._From:=PartsTable[5,i]; 9 V3 {, M* b7 ^6 o5 u8 g
@._To:=PartsTable[6,i];
/ ?+ C) a9 V9 l2 X E if no=PartsNo+PartsTable[2,i] then / m* O' J+ }$ h& Z
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)! j# g, k* p) H0 ]9 q- W: D4 X
, e7 T8 f n4 K- [1 E* R8 F: y end;
( V; g$ y5 P, _# \8 h i:=PartsTable.YDim+1; E+ M0 B1 N$ S9 ]
end; o# }0 @ N+ F6 c& J6 O2 S
m:=m+PartsTable[2,i];+ I- u& s w( \& `
next;
5 S! \9 W: L5 E8 C
! p" V. p( w T4 K Buf:=str_to_obj(sprint("BF",@._From)); G6 L6 X: {' x: N
@.move(Buf);7 E7 d2 L) R5 q! S0 n3 B7 \2 ]
end; |