这个例子昨天正好看了,话说那本书的例子都很不错~
3 l: H4 C/ n) G" i' t0 \不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。2 P4 d9 h5 {9 f% m0 D+ C( m
is
/ i( N8 M) } u0 Y3 p i,no,m:integer; --定义整型7 _! d8 q/ k* ^
Buf:object; --定义object' o! k0 Q: T' K+ l, F7 X6 ^% a
do+ W+ n* M) [( t" n3 O% `
m:=0;0 u I3 P+ o. t/ S
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外). g; g2 s% z: p2 u* `- D7 K- v( y$ e
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行1 O+ h( i3 [. L3 |# }3 V
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
+ K, y" Z! A! b7 ?8 E @._From:=PartsTable[5,i]; 8 |" g* f" D2 @! F6 P7 D* t
@._To:=PartsTable[6,i];
7 @- | T4 u. W) G" y+ A if no=PartsNo+PartsTable[2,i] then , [- V, Y I2 T
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
8 D+ F8 P: G2 Z& {% \
$ s: J0 i1 p6 ?* a end;0 P& q/ H+ F1 ~0 M
i:=PartsTable.YDim+1;+ O: h$ D; d! W, W0 W
end;
( C9 N, |- d3 b6 R" B5 o% D: ~" R6 [ m:=m+PartsTable[2,i];
" y5 W! m( V/ r/ i next;. }$ U4 O7 Z* C( w# A, C
* F7 d# I9 V+ ~# t
Buf:=str_to_obj(sprint("BF",@._From));% W# ~6 ]! [3 {/ Z! V
@.move(Buf);- M& F- d- O* q1 P
end; |