这个例子昨天正好看了,话说那本书的例子都很不错~. s" l+ ^+ M% {/ c
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。/ I' L1 n# H& T* `
is
- Q7 W* G8 S. p4 I0 @$ w i,no,m:integer; --定义整型
4 Y* O0 I1 W+ f! u: w, r3 N' | Buf:object; --定义object( A% o+ a, o( u+ @! r6 N
do
, N' o5 c2 s9 F m:=0;
7 R1 o* l; ]( L* `4 a- I no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
1 M: k7 a8 H: Y' o for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
/ K: T- P' K6 ?' Y if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 3 o7 f8 t7 ^) W7 \. C5 `5 ]
@._From:=PartsTable[5,i]; ; O5 x, i$ [' C$ `' H5 k
@._To:=PartsTable[6,i];+ m$ t d7 m- T
if no=PartsNo+PartsTable[2,i] then ; h6 _" q; b) u q& P! c- `, e: M
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去). [7 V4 j, o8 q+ c9 [: N
' s; q" \+ t3 i, O
end;
: i; n7 U* W( `7 ]; g i:=PartsTable.YDim+1;
9 c) T4 r, Z" A end;
5 d. M. T7 B6 x& H4 M+ w m:=m+PartsTable[2,i];
" d$ u; C4 s$ |; ?4 X5 h9 T next;/ N" R0 J. d! m- y% Y s* @
3 e0 {$ B- y6 D& z" d
Buf:=str_to_obj(sprint("BF",@._From));# U+ |7 x K$ D, i$ G
@.move(Buf);
' I* H, N2 ]% eend; |