这个例子昨天正好看了,话说那本书的例子都很不错~
/ r1 x5 H8 b2 T, O% u6 h3 w$ {不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。3 [( _- S3 c# M* R% b. w' W* B
is% E0 y: F' P5 j3 P# F4 z$ {
i,no,m:integer; --定义整型
% y$ g4 l2 f" n; u- j. p Buf:object; --定义object: o6 a3 v' ?& G9 h
do! N/ w. @# K2 Q0 J# ?
m:=0;
2 n$ D, D0 B4 G- f0 J# m3 w0 X: E no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)- L W0 e- A7 a# G% j
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
) y2 l/ X" C$ k. B' Q, B, I if PartsNo=m and no<=PartsNo+PartsTable[2,i] then Z& d( x4 k, K+ r0 f1 O
@._From:=PartsTable[5,i];
8 t8 ?( S' u! A7 N1 }6 z n4 q @._To:=PartsTable[6,i];; u/ H7 S: j, O/ A: `; S* s
if no=PartsNo+PartsTable[2,i] then 6 m3 p0 `9 x& r9 N( E# k
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
7 T3 s8 r- _2 l/ @. O. j3 z6 M5 x$ j2 K
end;5 m, \) p. a: Z9 x9 z" E0 S8 W
i:=PartsTable.YDim+1;
9 m4 R! v' I/ o/ J9 ~% `: x6 F end;3 I; G9 _ U% h% O' w
m:=m+PartsTable[2,i];0 O4 a0 w5 y, H8 I' c
next;4 A9 I! O# S+ q" d# N: h" g2 | f- z
6 f7 k+ {, m+ s/ y Buf:=str_to_obj(sprint("BF",@._From));
1 ~* Y, R2 @! V9 j8 B; @ @.move(Buf);( {, u3 ?, k, k1 {; {/ P
end; |