这个例子昨天正好看了,话说那本书的例子都很不错~
: a6 ?, d4 t2 d2 s不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
& m1 u9 e' k8 O+ r& S/ Z3 S' Lis
2 V( f0 y' @( B! X2 Q* S i,no,m:integer; --定义整型
! d L( `4 |# t9 s Buf:object; --定义object! [5 n5 E; V: c/ |# C0 E
do, s1 r2 o- V$ l. _) V
m:=0;7 T9 E* E/ ~" m* y" g$ o
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)- W& K5 H, Y4 f& ^4 k
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行/ r, x8 A: m: K+ t- b, g
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
& B7 ^) B* J% b' J/ f @._From:=PartsTable[5,i]; * s5 |- z8 i- N" M
@._To:=PartsTable[6,i];* F; U* |& Z; Q9 g- K7 A
if no=PartsNo+PartsTable[2,i] then 8 C S" B9 {: ?) `4 N H
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
/ A/ N7 q8 n8 R3 q1 h/ o' b+ ?; w) p- g* J
end;
! M' x9 N$ i* j6 g i:=PartsTable.YDim+1;/ M$ ~$ @* C, O* _
end;0 f p3 B/ X, J5 |
m:=m+PartsTable[2,i];
- ^6 V, K- Q; x' N next;
9 G' J& Q$ B/ w% D$ N6 f2 n+ W- \. [) B , N1 `& r4 t7 E$ c
Buf:=str_to_obj(sprint("BF",@._From));) i" w. @; j1 x. K7 D& b! e
@.move(Buf);' ?) ~$ r7 N8 [4 K
end; |