这个例子昨天正好看了,话说那本书的例子都很不错~) F$ E0 A( {+ _
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
7 @- z' l+ g# `is" V; z: G. Q# Z, R- v
i,no,m:integer; --定义整型% a" h+ O" T' E' ^8 _2 f
Buf:object; --定义object0 d9 v3 `# J- b
do8 l. V; I2 t( c5 p
m:=0;- N# P& h: s6 y: u' v! ^% Z F
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)3 @9 m' n, o$ K
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
3 F, J# j* ~& S, W! Z6 u' s if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 8 h2 d/ V* G& A6 ]% [
@._From:=PartsTable[5,i];
6 R1 c) l1 ]' w( ]7 M @._To:=PartsTable[6,i];
6 m, _0 S- r% @' b) x* u; |- w; V5 F if no=PartsNo+PartsTable[2,i] then
6 b u8 z, J% @2 {- q: X- A u PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
: \* E$ t: n" w9 K' G) V4 p! Y# p* m/ V$ e+ D4 |9 E. Z* ^, J
end;+ h6 w0 E) I- R
i:=PartsTable.YDim+1;
" |% x! j U. h' J+ \/ v; z end;
L* F3 v! H! `3 P# I5 ? m:=m+PartsTable[2,i];7 X' A: b1 R5 ?! o% [0 x' O
next;: g7 e# n# G( C
1 [( B4 e- M0 j- t# |) C$ o+ M! _
Buf:=str_to_obj(sprint("BF",@._From));3 U/ ^# C& I# u) l& {+ y# @
@.move(Buf);: h1 Z- ^: I5 y
end; |