这个例子昨天正好看了,话说那本书的例子都很不错~) k" n0 v' G( ~0 B1 ]2 t3 ?* u
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。8 w" D4 ~$ P8 W8 c/ j3 X
is
; x3 w3 `" w8 i. H& }+ p% C: `" p4 ` i,no,m:integer; --定义整型4 q$ A2 d$ n0 }2 G! \9 c$ j
Buf:object; --定义object
6 z+ c/ W9 y8 ~do9 J. D+ O- N. q7 u
m:=0;% U, y2 ~: l5 N, j8 v) ~; @3 i
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)# ]2 r3 L" @2 U& z8 o
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
# U$ w, h9 `6 u# } Q if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
# J+ I# [" C4 K. U! ~ @._From:=PartsTable[5,i];
) s7 Q$ d, g6 Y" H2 D4 Y' N @._To:=PartsTable[6,i];2 m7 r* A4 B B/ Y+ O7 r
if no=PartsNo+PartsTable[2,i] then
8 Z: A7 ^: j6 J PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
: O" \7 a4 d! A) Y: _9 w, E Z1 u/ e1 y7 l" H* F
end;
# g! v6 k( i4 \2 }2 I6 f& B i:=PartsTable.YDim+1;2 D! Z; R2 q1 g
end;
7 p; r; E e x/ L! \ m:=m+PartsTable[2,i];
% J+ ?4 t1 q+ v" a+ z: {. y0 w1 g next;5 v# n" M6 o: s8 `. s$ A
6 {3 r/ L& w: R% y. y7 V
Buf:=str_to_obj(sprint("BF",@._From));- T4 y M7 W4 G: |3 S
@.move(Buf);6 Q! Z+ Z- X) a6 ]5 D
end; |