这个例子昨天正好看了,话说那本书的例子都很不错~
7 n; q, d$ t* z& D不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
U( n* K- p) Y0 Sis8 I9 c6 z/ \# y" S* G% U. }
i,no,m:integer; --定义整型( m" r% L" j8 Z; {% m! n4 Q
Buf:object; --定义object( U$ h) A2 V6 v" a' c; B) _
do
4 |9 k1 v/ N7 {. y5 N5 \: H6 E9 j5 n m:=0;" z: \% w2 \6 z
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
1 j: h' @7 {9 c: r8 E" N- J for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
1 j L- U* u" j- T if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
" g; B% r O! d V" ?* t7 j @._From:=PartsTable[5,i]; - Q; S& w# S( l
@._To:=PartsTable[6,i];; A6 ?5 i+ q: Z+ h! n! o+ I/ r
if no=PartsNo+PartsTable[2,i] then
+ y4 ]* D9 K% q) { PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)2 s, m; C- X, A- N4 _$ O
* Q6 s; }8 D- z! [! A1 l
end;5 T7 ^- o9 a3 X7 x: e' D! C
i:=PartsTable.YDim+1;. s. \# R+ h/ S5 Z/ u
end;
" P, N4 S2 Q3 x m:=m+PartsTable[2,i];
% Q0 K; E& u8 n9 y( e next;- r8 N! p2 b5 ], i& E& p
+ W/ \, T9 ]: x
Buf:=str_to_obj(sprint("BF",@._From));; j. |( J3 i* |- h/ H B
@.move(Buf);
1 V, Q3 R8 s" j- z2 G( bend; |