这个例子昨天正好看了,话说那本书的例子都很不错~
5 |9 |. W- y/ `$ `) z不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。7 v# q7 l; J8 {) ]/ O* G* Y
is
& h, p- Q. n" g# V E i,no,m:integer; --定义整型' O8 ]" a: l. j8 E/ ~5 N
Buf:object; --定义object3 d' @( ]. p5 x( u3 i2 w O
do
! Y% Y/ _1 W$ O9 _. l1 O) S- T m:=0;( j& P. m+ K. e7 m7 r% C& u, F6 t
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)% p. W& S5 m2 G1 \& S' L( K# C5 f1 e- q
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
) J2 b; e# m4 i5 P& }* z if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
# E( G' o0 A" s, \ ^- \+ u @._From:=PartsTable[5,i]; , C) M! w. z z
@._To:=PartsTable[6,i];
/ T6 a: v$ I* Z if no=PartsNo+PartsTable[2,i] then 5 j- j6 n. a8 s; J! z' r: X
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)9 k& ~0 H, _$ d4 {
1 g; K$ t- i9 s! W end;
9 }3 T, V; Z. A8 y i:=PartsTable.YDim+1;3 m# u) _% N' g) \1 ? l$ y
end;
. U, V; p' Y- g' d3 a5 } e$ I$ K8 D m:=m+PartsTable[2,i];0 S0 C0 }+ m" k: J4 u; E; V
next;6 `% Y+ W& |5 e8 B6 s
1 x( ^: U4 g% ~1 b) T Buf:=str_to_obj(sprint("BF",@._From));6 w! n/ u0 f a, j q6 N' H
@.move(Buf);% s" O! Q& E6 ~- x
end; |