这个例子昨天正好看了,话说那本书的例子都很不错~1 C0 U% N1 J9 T2 h
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
/ X( Z% D# e' a& E6 m. h* U* a* q6 Xis
, R: R0 }+ @- x7 m p4 X i,no,m:integer; --定义整型
6 O8 f8 s7 j+ q& ?1 J# T Buf:object; --定义object: [; y5 t. |1 L- {
do- c* X7 d8 O3 C8 W
m:=0;
D1 I5 \& u% o" P no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
& b, p1 ~$ k) v for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行7 d a, |7 A7 I2 }. J& [
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
6 e: l, f+ o" R5 E! R @._From:=PartsTable[5,i]; ) _ s: ^# G5 `
@._To:=PartsTable[6,i];. L* f, i0 G2 \4 z Z9 A& N3 K0 v) s
if no=PartsNo+PartsTable[2,i] then & ~# C: D5 U* M: c9 w& K
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
l8 A: o+ t! M$ |6 J2 @% _1 Q, i! l, p: Q8 K! @$ H, s
end;2 n! ` i9 }, B; _% n$ Y
i:=PartsTable.YDim+1;0 q9 ]7 b1 P* t# v% S
end;2 Y# X. n, ^; y0 c% B
m:=m+PartsTable[2,i];
8 f% j! `9 @% W next;
2 @8 e% `; Q# Y1 y5 D$ R C P . l( p2 J& D: K+ i$ |
Buf:=str_to_obj(sprint("BF",@._From));
5 U6 b2 l f% ? @.move(Buf);
3 }, N- s# Z, i+ E( ?end; |