这个例子昨天正好看了,话说那本书的例子都很不错~( a0 ?2 g; O2 n" H H. Y$ X& W! a) F
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。' p# p2 ]4 c. i Q4 I6 R' A
is9 `& Z- j8 d# y" a: g
i,no,m:integer; --定义整型$ T) ]+ O1 `; H
Buf:object; --定义object
3 w- K6 W( n( O5 \- h) g3 Ado
2 a0 K: D, y9 G/ D9 l/ } m:=0;# Z! O/ z9 U% S. P( ~& d
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
, F. Z) L& @( x0 d7 ] for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
- o1 u" P: v1 b if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ) z1 S* r' c0 H o# [6 Y" b
@._From:=PartsTable[5,i];
0 `0 }4 J$ n2 R0 V @._To:=PartsTable[6,i];
! X8 p% w8 P9 |5 U/ H5 T3 Z; \4 v! I if no=PartsNo+PartsTable[2,i] then
3 M% { w e, x6 @/ j* h( S9 d/ X PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
7 H z) B1 ]: | f0 H9 j: W. u/ |6 e- u
end;$ ]3 Z e& e7 X/ B& I, J+ l
i:=PartsTable.YDim+1;
8 }3 M8 Z4 {0 ? end;
6 C2 Q. R B) P/ ~ m:=m+PartsTable[2,i];
% f, |5 L! m0 N next;5 O( j" h# s& Q0 B- \
3 t. x! b5 F" x4 e% p
Buf:=str_to_obj(sprint("BF",@._From));
' L6 h- {! K9 |' I j* A3 q* c! { @.move(Buf);% ^0 s! P; L6 E0 n* k& R X; A, L
end; |