这个例子昨天正好看了,话说那本书的例子都很不错~
6 m! D, [/ O9 b# R7 p v不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
4 W; l( X ~2 }' p& Ris
( l" Z' P0 n# r2 S7 ?/ c1 ]) T i,no,m:integer; --定义整型1 c* j. ~2 } b6 `+ O8 c6 }9 M
Buf:object; --定义object& y3 k: }/ ^! t) p L3 Y* e2 B
do
+ k" U4 h9 e2 C$ o m:=0;
7 a" H+ V2 c% F+ T& P- } no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)$ v, F+ m* s) F$ H- k K( x7 i; r
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行# ?7 c7 Y! ?& U3 I* z0 E. @1 t
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
& ]/ e) `6 V) b% r, J @._From:=PartsTable[5,i];
9 }8 w8 C% I9 A. E @._To:=PartsTable[6,i];. c" g+ i' Q! N7 q7 Q
if no=PartsNo+PartsTable[2,i] then
& V$ H* P+ J6 \/ T8 P, q PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)4 r( w. v* W) d) p* }
7 r% b# B E8 X0 q& c! t2 ^ end;
) m4 v, `. a) e) E3 L, }) E5 s i:=PartsTable.YDim+1;
% M0 M+ K; m6 t5 t: J9 x end;
, p0 }* K9 |; M V' e" P! d; E m:=m+PartsTable[2,i];
; m, S# l: e( C& c) A0 f next;
5 E% T3 G0 L- ?5 z ' k4 V- m, u0 B) |' f; K3 K
Buf:=str_to_obj(sprint("BF",@._From));
% a' D0 `; O4 d1 F& D" m @.move(Buf);7 W& d% X/ H4 r/ {/ t5 E" o
end; |