这个例子昨天正好看了,话说那本书的例子都很不错~0 x% M3 e) \: n1 d% t
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
& m& B* f( o/ j& |6 sis
3 i4 R) P7 I/ H2 b4 k i,no,m:integer; --定义整型$ A$ Y$ v$ p# r8 b. R5 E Z; J7 A
Buf:object; --定义object
8 P) c- N2 ^5 G6 A% Tdo
$ E. U& G6 R% P* t7 k2 o2 { m:=0;4 R" A$ K+ ^: ]. ]7 b/ P5 V$ s
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)) w ]* ~1 e) i4 B5 \+ k$ r, \; {! D
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
' G1 ^& |& k% n0 g4 _3 y1 H6 @ if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
" J5 X* ?3 Q3 h! n4 J9 C @._From:=PartsTable[5,i]; / e# [& ^! J: P
@._To:=PartsTable[6,i];! K P& b u8 G N: T9 ~! S
if no=PartsNo+PartsTable[2,i] then
9 X* v( V' N3 j3 G& x8 t PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
: }1 C9 j; L2 ?. x4 n
5 V3 I K6 z) q end;1 D' l% r( D# l. N
i:=PartsTable.YDim+1;! s+ _ c. k& |
end;
3 y7 }- [- M3 o m:=m+PartsTable[2,i];! p8 Z. E ~1 a. i" d3 a" v
next;
7 }, Y; G, U( {
/ F, |9 V* ~7 n, ^6 U' L: S) B( z$ o Buf:=str_to_obj(sprint("BF",@._From));
7 u+ E- P0 S; H. Q @.move(Buf);
% c, Y" I! R x! ]1 H5 G' Y1 j8 qend; |