这个例子昨天正好看了,话说那本书的例子都很不错~0 v9 n) A/ \) h& R
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。4 M' E$ C' |0 K7 |" \0 i/ g
is
) {$ G- [, A& u. L& @9 S i,no,m:integer; --定义整型% d o, E+ B* Z! h8 C( X
Buf:object; --定义object
2 t) s# p' c- w$ e: vdo
: u0 [3 y# R" F( a1 a& x m:=0;
0 X0 G2 Y( T/ r3 D' C0 p# M no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)2 _- n5 K* b+ H. O4 F& T
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
' t1 p L2 G/ |! L if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
5 p! f/ t o7 i0 W @._From:=PartsTable[5,i]; - d* V# O7 x" m' j
@._To:=PartsTable[6,i];
+ {% u2 c. t; ~9 p2 L9 {# O) y if no=PartsNo+PartsTable[2,i] then
0 C- N# Y w" a4 w: E- G1 o PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)6 d7 Q- ?0 P8 h2 o
7 B) t) n2 B" p8 a' h* M0 r
end;
M" a) F+ X! t0 r, j0 p* g. n% U6 ?' S i:=PartsTable.YDim+1;. ?2 C) O1 I5 M2 Q
end;
, _: N- W# c% y9 w6 z) [ m:=m+PartsTable[2,i];# ^& {4 e. R: ?$ S
next;
: T' ~: j6 U- f2 f 7 s3 X1 _0 G3 c" l' }1 A# f, i
Buf:=str_to_obj(sprint("BF",@._From));
. a% U7 m: t1 K2 P7 e! D, j @.move(Buf);; r* ]; U0 k" l9 f* \
end; |