这个例子昨天正好看了,话说那本书的例子都很不错~3 Q- G+ b* |$ w( x' X
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
& M, F2 K2 B' U# Wis& [& }/ x& t+ t/ T& f5 W4 w& j
i,no,m:integer; --定义整型( |+ ?3 X" N" b5 N) {! |. K3 a
Buf:object; --定义object; Z$ N. x5 ~, D' O8 b. {" h2 ?2 S
do
; ^+ ]4 i5 |$ G% |& ` m:=0;
; W# S# h, K2 Q& Y1 S7 _ no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)& V2 a/ O7 k% v! F& e( U. L
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行! d T* q1 y9 G. s7 w
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
( D7 v+ A, K/ P( I% x @._From:=PartsTable[5,i]; * U% f/ B- V F2 Y
@._To:=PartsTable[6,i];( z ~# {1 p/ i
if no=PartsNo+PartsTable[2,i] then 4 ^* Y! [2 c& _3 @( O) [! }+ q
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
, O: ]# o2 Y) B$ Y6 `7 F9 [, K$ P6 i5 l' p% ?& ?
end; }( I* _( v% u* o5 y1 A
i:=PartsTable.YDim+1;
, T( a' U0 s' A y+ _* X+ _ end;
' I3 g4 z* }1 |! F9 y m:=m+PartsTable[2,i];& p0 x6 i! l9 B, B
next;
" T% @) f/ L- o) `1 I" o0 V, b" R, V8 t
, a1 \1 a* E! C" W" L% P1 H Buf:=str_to_obj(sprint("BF",@._From));, [+ D) W2 a, z, i
@.move(Buf);" h; y5 B1 M8 d# F% G
end; |