这个例子昨天正好看了,话说那本书的例子都很不错~
: \ }5 v2 \! b: I0 t5 h# h# ?; P不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。- L- h l: q1 R" c! H
is- K" K9 H* u$ U, N0 a9 l
i,no,m:integer; --定义整型% t# ~9 J# I4 o$ l
Buf:object; --定义object- m* T/ G1 J4 b3 c% S, ^! |
do$ P' Y( h8 k7 V1 b
m:=0;' G B; h' p& k- P8 c$ E
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)$ V, o4 b4 x8 {% j% S
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行+ @! d/ b. S0 W5 N3 T
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ( |* P. I* I* y c: M) V# ]
@._From:=PartsTable[5,i];
) E' x2 X, q0 D. m' t% Y, ?: u0 _, E @._To:=PartsTable[6,i];! ^- }7 `# l$ ^; H# K
if no=PartsNo+PartsTable[2,i] then # [! b3 o H8 S& c h9 g
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)* m/ M* r8 _& N- ?! `! @
$ g, B8 T. ?6 ]; ^ end;9 ^7 k, x7 c, {. ?. t+ t% o) N
i:=PartsTable.YDim+1;
: r' `3 u; m6 t+ _- h$ D8 R end;! l6 O3 {1 A$ v( P. n# N5 g
m:=m+PartsTable[2,i];
# C4 T. t# k0 }$ D# M+ W8 i! F3 B next;
+ r' p% |# Z4 G
- C6 @4 n5 _& v$ |1 |- \# W Buf:=str_to_obj(sprint("BF",@._From));( Q4 s, D' W! y
@.move(Buf);$ ]* u+ D7 F( ]. M" z; e, k' S
end; |