这个例子昨天正好看了,话说那本书的例子都很不错~
& @- X8 D7 ~' e3 ?& A* P0 d0 Z+ L不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。1 C& p+ f" @: N7 a. J- u6 X
is" z% z4 w, | W, {! W }
i,no,m:integer; --定义整型6 ?1 m3 X9 D& L2 l* U: `$ B6 S/ l. u6 l
Buf:object; --定义object- o, | H. j& ^" E) W- w8 n/ K0 y( h
do
/ T# ?3 T+ A7 _; _" @+ _+ f7 m m:=0;
% J+ f( }/ J7 j7 o/ x no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)) L) N* T! a% _* L5 @4 J
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行0 G F3 o3 h( x' ], o
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
. I; l7 S3 `/ \1 M" F$ P5 Q$ }+ c @._From:=PartsTable[5,i]; . j2 }. X/ S# ]3 a* L1 {) R
@._To:=PartsTable[6,i];
0 n* ?2 N" i' P" d. { if no=PartsNo+PartsTable[2,i] then . ~* p* H. x6 [6 [1 V4 O
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)0 q$ N" C( Q+ H* c, T8 ]7 K4 b0 M6 t/ b
5 o I0 n9 D, R- I! w& l
end;
4 A, r/ b" [' E3 S8 o7 b i:=PartsTable.YDim+1;
6 o! `7 @! i; a end;
* w, c' {' P v m:=m+PartsTable[2,i];
2 J! i8 W$ k7 v next;
& ]$ {0 B) e% z9 C& v! S. C9 V ; V- l7 d3 k$ @7 }5 S3 B% Y; r7 C
Buf:=str_to_obj(sprint("BF",@._From));
# s, I2 p) K9 z! \, z* `8 E @.move(Buf);
* v% r; q: A1 cend; |