这个例子昨天正好看了,话说那本书的例子都很不错~2 Y; Q* `% q3 ^ H4 j
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
% _: j* ^5 z; his
, V" t4 V# N* g7 c$ V4 Z, I i,no,m:integer; --定义整型2 J+ M5 F; O2 |+ W9 D
Buf:object; --定义object
) K2 Z: R) S# k$ Qdo8 y8 T2 s% F. ?& c! s% ?
m:=0;
! \7 M3 u3 h& S, E% Q# }0 @* [ no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外) P# J; l x' M3 v" n2 e; q
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行; B' D8 O0 T' i) Z/ |
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
! G7 V d3 y, `7 w- J @._From:=PartsTable[5,i]; % z$ ~/ o+ x* P, g
@._To:=PartsTable[6,i];5 I7 W7 B* U+ I% ~- s+ p
if no=PartsNo+PartsTable[2,i] then
/ v3 I: F9 G# d9 Y+ v4 Y! o PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
0 A# O4 L7 _- g4 l: ~0 I! T6 F d f* c, V+ q
end;# d8 p6 Y" u3 C+ S
i:=PartsTable.YDim+1;
9 L8 G7 [0 b, g end;
* V, _+ l8 K& ], R% L' V& ]- n m:=m+PartsTable[2,i]; d8 I. p, r/ j: c: ^1 L9 {8 c, A
next;) V5 A' `. V4 _ b9 d* f0 T
2 l6 A# u1 S/ e- y/ {! {, V Buf:=str_to_obj(sprint("BF",@._From));0 x, }* X; o7 I+ Z: R* ]7 Z( B) _# n
@.move(Buf);0 [$ }" o; c. f! D5 j# N$ e
end; |