这个例子昨天正好看了,话说那本书的例子都很不错~1 F4 G# _0 a( B) K" v
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
/ i0 N k# G) p% \! Fis
2 w; ?, P+ g: I) f) J) `5 X i,no,m:integer; --定义整型, j' ]. {' n6 G) A0 J6 O; g& j
Buf:object; --定义object
6 B3 u8 W6 q/ {2 d+ g+ {do0 _% o7 U, I, i& R9 k- ]% q1 L
m:=0;1 \/ I2 R" [, ~" F
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)* E+ \1 O4 v+ k7 v9 ]
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
- x. X6 k, h: J( [5 m if PartsNo=m and no<=PartsNo+PartsTable[2,i] then : w$ S1 n- w' N1 ^0 G6 o& U
@._From:=PartsTable[5,i];
$ n; _! E+ n* P1 M1 L @._To:=PartsTable[6,i];' a1 a3 s5 s+ U* v M* b; v
if no=PartsNo+PartsTable[2,i] then - R# h) B# d* `4 ^3 J
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
" c' j4 L: _% |; J% |/ D
2 C. h) @7 v. ~+ { end;1 n% G# d5 Q( \, S3 N$ r% t
i:=PartsTable.YDim+1;& e! m! p% z T; o% s, w
end;
+ a! v3 D! s0 |& z' {5 D, x m:=m+PartsTable[2,i];
9 I `& B0 N& ]* P next;
6 G3 J% t; s8 I9 S. f
/ D. f" R( C; G, S0 S6 @, r+ k Buf:=str_to_obj(sprint("BF",@._From));
8 F5 d- b3 u, M* U6 Y( s) u3 { @.move(Buf);' v! F- m! o4 Q
end; |