这个例子昨天正好看了,话说那本书的例子都很不错~( H/ k l% q. ?% U- C
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。5 K1 n: P% x6 L
is3 B9 T, r7 a8 _: d+ g
i,no,m:integer; --定义整型( ~- J8 o7 S/ b5 c& R" _, f
Buf:object; --定义object4 s8 {3 d3 P3 n8 A7 G
do& q5 c) O& P$ g& h
m:=0;
4 }, K9 Z/ L6 P) q! _- ~ no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
3 i" S: [+ l. X1 L$ M for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
2 i2 k/ d) t( d7 R8 f& A if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ! x) r; Z2 I6 o' {8 I7 J
@._From:=PartsTable[5,i];
. w5 k# c6 m, C7 } @._To:=PartsTable[6,i];# t% q3 c2 B* A! s- z" l
if no=PartsNo+PartsTable[2,i] then 1 a5 g7 ]( U4 \: K5 s1 y
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)6 f9 E! T# o$ i9 \8 Q( Z
# ?/ \. l6 x! E
end;
/ {4 }: ^& b. a' j i:=PartsTable.YDim+1;
) [& l! p% H" ]% v' Q3 R! `# C/ ]( N end;2 a! B8 S3 P0 L \& y& }
m:=m+PartsTable[2,i];
- c! j. _: j; G% `& y3 d4 m next;1 W$ ?" ]' c, ~$ S
- R- R2 U5 C0 K. c' [ Buf:=str_to_obj(sprint("BF",@._From));0 l( c# u8 c' m/ }' p
@.move(Buf);
& |8 A0 b5 |. i9 y3 g, k4 @end; |