这个例子昨天正好看了,话说那本书的例子都很不错~ y% g+ V" Y: t7 ?4 a- g) N
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。) @4 a5 b x) ]! j( u( z
is
8 @. s, ^' _6 ?/ r! G i,no,m:integer; --定义整型1 g. s* j3 O' |3 e, B: G* q. ^
Buf:object; --定义object
- G& ^8 g' b) xdo) ]! W$ R) n* T, p
m:=0;
+ z+ N- z+ V5 z* Y& s1 g6 C1 ~4 U no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)& U; p6 X- n: H
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
' j0 p! a* X! Q0 N6 T( i* W if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
4 V: S5 y5 u1 U' x. Q+ Z" m @._From:=PartsTable[5,i]; 6 m0 L+ I, \# P4 [! Q
@._To:=PartsTable[6,i];9 D* ]: j, V2 \; t( Z' m
if no=PartsNo+PartsTable[2,i] then ; f6 f3 W2 ?5 e% y: S
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
/ n" Y% W3 W) r8 D8 h( i' ^4 o4 p& y5 i. @. j+ G
end;
: z; F; B t- }. ^ i:=PartsTable.YDim+1;9 S# ^# V- p3 r4 ^/ q P% Q
end;& I1 G5 I ]5 V- ^* M
m:=m+PartsTable[2,i];
g+ O1 `0 G% b' [9 x" `) \ next;" U1 C& D" J+ c+ t; k" w2 N
( a: z2 ]4 P- K' {" D
Buf:=str_to_obj(sprint("BF",@._From));1 G, Z, k7 X- Y2 N9 l6 w1 x
@.move(Buf);' d) S, k: J4 @
end; |