这个例子昨天正好看了,话说那本书的例子都很不错~5 S% F) ~/ p. w; s: |
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
- h' | Y3 X ^# B( Eis* b+ a! s) U! g2 ]# ^- R
i,no,m:integer; --定义整型. s2 l7 G; A8 p! L& r
Buf:object; --定义object# t, {7 B2 x; `
do x. f) u0 ]: P4 A% F+ ~
m:=0;& n% R8 ?$ c2 v# |
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
2 P1 W+ |( [3 M$ m5 F( G for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行' \" P3 s( S/ G6 C
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then + }. ^1 }& y- O! s
@._From:=PartsTable[5,i];
0 n' z6 x7 V! V @._To:=PartsTable[6,i];
3 A7 I) _( T! `1 k& t$ q6 ~. \ if no=PartsNo+PartsTable[2,i] then ! g4 V0 _, D7 I# y: j
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)3 t6 K" r, u1 p- q% y
/ F. ~, @- H; P/ \0 C) i
end;* d% v# U+ D% L ?! c w$ y
i:=PartsTable.YDim+1;. B$ P0 H% c1 D2 Q) w/ n2 G% J
end;
* K" H2 e. s( A) A" w. S/ Q7 t% ] m:=m+PartsTable[2,i];
1 M7 I# w% r, k' R5 [/ A b next;5 _. h/ t8 D( t0 m
/ a* S; v" z0 C3 R0 X! G Buf:=str_to_obj(sprint("BF",@._From));
8 h3 l* R' t, V, U" p, R @.move(Buf);
B& t9 K4 R9 |6 U' b+ x4 y7 f6 aend; |