这个例子昨天正好看了,话说那本书的例子都很不错~- g* ~3 ^' o' g/ ]
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
/ ~0 |( }) c( U6 M% j$ \/ ~is. A8 I/ M0 c; [- X
i,no,m:integer; --定义整型
0 I1 P; K7 n( k Buf:object; --定义object
6 u; |5 V% l; ]: ^% e5 M Gdo) H0 x) I, M- B; l: N4 U9 J% B
m:=0;
' P: L1 B5 i+ N8 H; { no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
- U$ i4 a5 k6 l# x3 m for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
2 C1 R, m+ h! N3 [ if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 9 \; d9 ~( W. K4 j+ R
@._From:=PartsTable[5,i]; & i3 d% \) B. y, d8 Y
@._To:=PartsTable[6,i];/ X: `$ n- _9 U# b
if no=PartsNo+PartsTable[2,i] then , k/ c9 R( ^2 L* _
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
: D. s( y9 s3 ]1 A! k8 p; K
: R1 c, w& d- ^/ K. A end;
& u9 i" ?% u: e( f; I* J i:=PartsTable.YDim+1;5 Q; t0 h) V- L" K, C4 k
end;/ U4 I6 e( o1 [
m:=m+PartsTable[2,i];: r; ?2 X# j% z9 k
next;: |" ?, H1 c; B% h
7 u( y; d! y7 ?7 a( n! g
Buf:=str_to_obj(sprint("BF",@._From));
9 N, \9 B+ U" r5 `; t @.move(Buf);& }7 a3 k* a9 ^; Y# Y6 K
end; |