这个例子昨天正好看了,话说那本书的例子都很不错~+ E, i. | U4 j( T
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
1 Y( c. m" B+ e. L( G7 Mis5 a' Z0 W: G6 v
i,no,m:integer; --定义整型
) p( c. {' H2 v, }# B' S Buf:object; --定义object
* _# e6 [# l4 C- Ido( g8 ]7 ^) f9 Y1 a2 C: ^. P/ t- E
m:=0;
& y( P0 j/ {- S" f S { no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
4 D0 ~: i; e/ L$ ^$ D7 G) A for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行' B) M* i- L9 j1 r8 X! W s; I
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then . _7 m! c3 e# F6 l( F
@._From:=PartsTable[5,i]; 4 m. q+ d, E! T5 R1 o0 Q
@._To:=PartsTable[6,i];. W4 t& n& b6 L0 V, w+ P9 r3 t
if no=PartsNo+PartsTable[2,i] then
2 x: w e& f8 M) a: U& k! [5 N, f PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
' e4 ?# d1 |6 k' ?% r
! r& g, f: Q2 w# }+ f( S! K end;
2 O* }5 }8 Y: Z- E% u3 g4 _3 j i:=PartsTable.YDim+1;) S5 j' M- ?" }
end;
7 C/ |- U" T5 V6 s m:=m+PartsTable[2,i];! [! w H; A& c1 R& U% e& \: B
next;$ `- u) v& y" W& r1 s* D8 B/ L
4 _( m) e l: _- m0 P% a2 N Buf:=str_to_obj(sprint("BF",@._From));
5 F6 p1 T$ m: ^+ j9 ]# s3 Y @.move(Buf);
# r5 i; Z B4 s5 i0 i! [: Fend; |