这个例子昨天正好看了,话说那本书的例子都很不错~
" _) b- s& V) q1 C; Q* x不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
. K: f. f! V, z) C9 i# {4 {' Kis1 H: o1 z8 O8 C' l
i,no,m:integer; --定义整型3 q. }6 J5 z& c9 |* l
Buf:object; --定义object
9 s& q+ R: S3 i# B( {do
9 S: E, `8 ~* Z- f. k& z- b m:=0;& h1 p9 k7 [1 g- l# h! E; p
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
, c) d1 e& o" K5 p for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
) D, Y( ~" L! k! E* G2 D if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ! N& V* G5 i( A1 {8 K# A h
@._From:=PartsTable[5,i]; 4 y0 {" E! L; Z* e% c9 c. C
@._To:=PartsTable[6,i];
% O0 j- |/ N" o J if no=PartsNo+PartsTable[2,i] then , q! h3 Y3 V- c6 f
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)% w8 V8 ~4 P ^% }
9 b" F% J' X. R' y& f) T5 a( C end;
1 W! O, M+ ~, I7 k i:=PartsTable.YDim+1;& m) ~' l7 y' M; d! g2 j6 I
end;2 ?. J( V) m" ]' C
m:=m+PartsTable[2,i];
7 _8 {* c7 D" w) A% H) o1 T9 [ next;
4 g" t" L) \" y& f0 v
' g: O9 Z2 B8 Q& \& [8 Y% K Buf:=str_to_obj(sprint("BF",@._From));
/ X2 S$ ]; N/ V* @ @.move(Buf);
+ \0 _6 ]5 }$ m2 T$ ?; {$ h+ c# {end; |