这个例子昨天正好看了,话说那本书的例子都很不错~8 ]1 C+ k) t" ?4 R
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。9 }% m* a" n! R/ ]% @, K6 @
is" w4 n2 ]7 r6 J# T
i,no,m:integer; --定义整型
& ~1 C6 z, |" r# ]$ r& z Buf:object; --定义object
& |- B8 k2 R7 g% }$ [do
7 g! h+ O, H7 G. [+ _ ^0 F- z m:=0;
z3 Z6 o4 D% }- m1 v no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)2 m- d4 ~, Y- M/ r; [ A
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
6 L d6 i1 T5 D, ^7 {$ M' A if PartsNo=m and no<=PartsNo+PartsTable[2,i] then & N, d' N3 C; F
@._From:=PartsTable[5,i];
6 E1 H4 F3 v ~; H2 ~7 m" J/ g @._To:=PartsTable[6,i];, y% V6 l* U( N7 H H
if no=PartsNo+PartsTable[2,i] then
8 v. Y( Z4 T$ R4 Z3 n) q PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
7 c5 @: v6 A% b) s( x: U7 A7 V3 M" y3 Y
end;
0 i$ |6 J$ z+ l4 F/ i& y i:=PartsTable.YDim+1;7 }$ m/ J7 y$ h! k
end;4 a# E @4 u/ s* }$ B* e% f! c R
m:=m+PartsTable[2,i];% l' f6 s. m$ L; w& f! O
next;& {3 O+ F# P) |) ~# H4 Z
+ b2 z9 g: e( B* a( m
Buf:=str_to_obj(sprint("BF",@._From));
' q2 j! f, w# o0 F% T @.move(Buf);
2 R' w; H/ G+ Cend; |