这个例子昨天正好看了,话说那本书的例子都很不错~6 n t( C& u& o% y7 p6 k P1 B1 q
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
2 t4 Y* Q6 s/ @) z, q, S& ^: qis
2 {0 I/ l( s1 \3 j7 L i,no,m:integer; --定义整型) G, ^" Y" Y' `5 \5 ^
Buf:object; --定义object
# J [6 g' i; ~' u6 Ndo! W8 r- F; W5 @2 i
m:=0;, y! m2 ]/ I8 j: M" x2 C: _
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
/ ~$ M( R2 i/ O! _5 D8 B for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
2 V7 k; \7 R$ H: J' K if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
6 t7 [% `) B5 A' ?8 C! q1 A0 ] @._From:=PartsTable[5,i]; 8 }! U% J& F% ?$ m6 @0 i. G
@._To:=PartsTable[6,i];8 ~( h2 g" ?- F9 q
if no=PartsNo+PartsTable[2,i] then ' d+ z2 d8 w: ?( Z- T0 R
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)& C, J- z8 C: k5 |
" [$ `, m: s0 q. w" Q1 L4 m% n end;% s$ B& _! r1 ?, ]. _, h
i:=PartsTable.YDim+1;' Y: L6 x" S' W: l: h0 g% [
end;
3 G, G" q9 H' |0 Y m:=m+PartsTable[2,i];
! g! p' m4 P2 L$ P5 U& Q b- i% X next;& _; ]" U! ~# h+ D& E4 B$ a5 }
$ N- Q$ W& L0 B6 V+ P1 K; f, e Buf:=str_to_obj(sprint("BF",@._From));
) Y5 }6 c% x# ~& m8 i) x3 V @.move(Buf);+ a2 o; a; W0 z( V0 j, M
end; |