这个例子昨天正好看了,话说那本书的例子都很不错~8 T1 N/ j3 R+ s) J% s8 m( a3 o
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。$ Y( R+ u2 x& v$ N0 E) {" k) _, B( P7 z% m
is5 T4 b0 _! p3 X6 w$ z
i,no,m:integer; --定义整型5 U( u+ A4 I2 d! r- P& ^
Buf:object; --定义object
" ~6 ]# {2 j; V' j8 ado. ?2 b) J( t! G: z
m:=0;
9 _$ X* b1 K( c no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
4 k; e* ?+ z/ x2 J3 \6 R for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
/ y. O6 T% Q/ d# x2 u5 c a( s if PartsNo=m and no<=PartsNo+PartsTable[2,i] then j1 D9 T9 M+ a* b( I! O
@._From:=PartsTable[5,i];
% z" Z" o3 F1 m: p9 J @._To:=PartsTable[6,i];9 J5 x( x: m! c& s; }
if no=PartsNo+PartsTable[2,i] then 0 ]$ \" `1 j& Y" S5 R- W
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
- O/ F1 m8 U4 i) l R. U
/ n) `/ W, m6 b, s9 j end;
" Z4 Z1 \8 l+ ^. e9 c6 ~ i:=PartsTable.YDim+1;+ Q1 Y, j( |. d5 V
end;5 J+ v# T' J4 d! @ i, }! z
m:=m+PartsTable[2,i];
! w1 G5 {- [- ?! K! U% ?+ b! L next;
7 l" A9 e% A: o( D( D ; n7 M/ }) F7 x! P
Buf:=str_to_obj(sprint("BF",@._From));+ R' V- a& p4 z; K7 W1 i
@.move(Buf);
1 Z/ n7 K. Q9 _4 I- Gend; |