这个例子昨天正好看了,话说那本书的例子都很不错~
' y }. m3 E5 U; h- t: ]# k不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
4 U# M. D% H3 w! Y$ `is+ g7 F# Z8 [! ~% F- Y! _7 p
i,no,m:integer; --定义整型
% C& ~. ~0 i( e4 x Buf:object; --定义object
+ X, ?+ B: b3 O3 }2 j0 |& ^do
/ F# w, S* D2 ]8 C, l5 m m:=0;
& j' e0 ~8 _& f no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
2 v0 y2 R: Q0 A0 [+ S for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行/ h' _5 O. p0 b0 u* T8 W
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
5 T0 B ^ D9 @& @& A8 h p @._From:=PartsTable[5,i];
: B! h7 p, x7 Q7 P- ^; D; j @._To:=PartsTable[6,i];
# h2 {. A- ]2 A4 \4 Y( p if no=PartsNo+PartsTable[2,i] then , H8 B9 e' l! B+ T# |0 S
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)3 _1 |6 \9 t% g2 }
. D# T, S0 i+ ?8 E, v$ R
end;. A" F' `3 ~. _: K* A: B
i:=PartsTable.YDim+1;
) c) N' n9 [/ r2 _ end;
7 d" ~7 c* Q' o: I: b5 ~ m:=m+PartsTable[2,i];/ s. H4 X3 b9 K8 w$ T1 E5 O
next;
; I3 R" c$ C" [* S5 j7 _ " y( r( b* A7 z: X3 U
Buf:=str_to_obj(sprint("BF",@._From));# N) v4 P- w |9 C5 F
@.move(Buf);' e: M: B) G/ t+ `2 Q# o
end; |