这个例子昨天正好看了,话说那本书的例子都很不错~
, I2 R6 `& {1 u0 s0 c0 u7 P. B p不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。* q! c8 T2 D3 Q" i
is: `0 Z, @$ F. h; M" {# u; m
i,no,m:integer; --定义整型3 J: x; K3 U8 X+ j5 u' i4 g9 P* j
Buf:object; --定义object
3 @& O% r. G% L& Z, I3 R8 ]9 j/ Ido
) {2 ^" V, ?/ ^; @: ? m:=0;0 w0 t' {: j5 A3 v) |1 x) i) P7 Y
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)6 S. v, E/ S+ J
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
, N/ G+ L* l, Q1 ]% R8 N1 ] if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
, [* H* P! F" i# |( ?3 M/ l @._From:=PartsTable[5,i];
/ {4 C- Q4 U6 s& [ @._To:=PartsTable[6,i];/ P! c$ e |! y" U5 f* `
if no=PartsNo+PartsTable[2,i] then
; M3 q; Y- o9 q# m! ? PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)- m( S( ~' D1 Z
. g+ u8 i, \( M3 g# ?4 e
end;' h# o8 \+ u O4 L' `
i:=PartsTable.YDim+1;
7 `/ ?6 b2 T. U `& Q end;' L; R+ w' g# t6 b; `* ]& }
m:=m+PartsTable[2,i];, g7 `0 @8 b& {6 C0 u. A s6 t
next;
6 P9 a% @ I( `# a
0 D n2 y. |/ I7 A1 f Buf:=str_to_obj(sprint("BF",@._From));# Z+ I4 f7 u# K
@.move(Buf);
, e: E7 d& o9 q" ]end; |