这个例子昨天正好看了,话说那本书的例子都很不错~
* E2 T. c2 z! `$ r% p不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
) M8 d* d, S' ris* e: [: p) v5 n2 [% O
i,no,m:integer; --定义整型
+ E$ M: B4 f9 m* K Buf:object; --定义object. F: h! Q( |) h. X
do, S. I, E; `' _: R
m:=0;
* T- ?% Z& i( ~ p% w- ?, N no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
1 h: X# E1 V; i: u7 O for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
( D3 {2 \7 K5 {- b if PartsNo=m and no<=PartsNo+PartsTable[2,i] then # w. H) Q% O4 s5 [2 \2 q
@._From:=PartsTable[5,i];
# \1 [9 ]9 L: e p- D( O5 G( w @._To:=PartsTable[6,i];' |. k( [# X; ?9 Z/ A R
if no=PartsNo+PartsTable[2,i] then & t( i& d ]% m* B$ ]( N
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
" d" Z0 U$ } e4 b6 t) L2 O* E1 V8 T/ B; c8 ]8 {
end;
6 O: M/ r" G! d2 J! t" [$ e: f2 i: } i:=PartsTable.YDim+1;9 P6 l3 s. `$ u5 H% J, A
end;2 q% j [# @# f) O( q
m:=m+PartsTable[2,i];% G4 ]+ u$ s, m+ u4 b0 ^1 J# \2 @
next;6 q6 A; Y5 B* R& x% g/ r- g
7 M# j1 Q0 m- a% t+ w- u
Buf:=str_to_obj(sprint("BF",@._From));4 I( y+ K- p) J* e, w, I b }
@.move(Buf);
`, C" s4 f; X) j2 D( zend; |