这个例子昨天正好看了,话说那本书的例子都很不错~, s2 I- ~/ O# B( _$ Y' W9 F& a
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。* W* p9 i: C8 ]+ @
is! N. K0 e/ x6 y- y
i,no,m:integer; --定义整型
+ |$ k H* v) ~; T7 p- t s. v4 b Buf:object; --定义object
; s& m4 S2 l$ ]; c5 a( w4 D2 Y1 Qdo
& y7 l5 k8 B4 g+ p m:=0;$ ?8 o E. c1 G
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)5 `9 P j# ?/ l3 L" e. p' M7 C
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
6 F5 o- R! r! O if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
% J& `! W/ v0 ~% e @._From:=PartsTable[5,i]; ) y- A" |# A( [* l( o
@._To:=PartsTable[6,i];, s+ N6 Q; R, b
if no=PartsNo+PartsTable[2,i] then P6 t9 h. t' w! L% h2 T, s
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
0 O( Z+ g7 E: t! Z% l* h2 b6 u8 F& {- {# Z' E" _6 D4 i
end;8 E+ [$ p# ~. [. Y* [, x* X
i:=PartsTable.YDim+1;
8 i: w' ~8 ?" {* { end;7 w: @/ U4 y) i% x% f+ b# P
m:=m+PartsTable[2,i];& M. M* i# J6 w: n% ]: L7 v% g
next;" y' z% J6 S) _6 i( b% [+ z5 }- [4 R
9 V9 w8 h! r3 _1 ]/ O5 I9 _, B Buf:=str_to_obj(sprint("BF",@._From));# W3 ?0 f) w" l7 u }* O
@.move(Buf);
$ t3 y8 ?; {% f- t$ q8 k% a; x Bend; |