这个例子昨天正好看了,话说那本书的例子都很不错~
$ S l1 x \7 o不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
& }- v8 D& Z) l% e1 jis
7 Q) K4 o! m I) s. N# V$ F i,no,m:integer; --定义整型! u+ p& m* R1 _3 H. A8 V* ], E
Buf:object; --定义object1 g2 U. W0 U4 D. e
do. R8 w& o2 q3 ^/ j& z# O
m:=0;, W/ c! N* }, e4 t/ w- u
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外) s6 V* _8 H4 f$ ` ]( p& R
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
, W. k4 U1 V" Y& f3 o# p if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
" L+ d- t1 ^: u# g( o% U: g @._From:=PartsTable[5,i];
4 o! @$ u, R/ ?0 y @._To:=PartsTable[6,i];: x' a T9 M' J- Y+ L& `& r* O, V0 t
if no=PartsNo+PartsTable[2,i] then ! M) j' ^) h1 r3 b; r
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
# F- T/ g: g; }+ k* u8 |/ i
" A. L' `+ @3 ]2 ?- b3 T) l end;
0 `, J4 D) g9 R& D* a: C3 \0 _- O i:=PartsTable.YDim+1;7 ]$ ~& M2 T( k* X6 P
end;. x ?7 b/ C' ]
m:=m+PartsTable[2,i];' G% U2 ?) ~9 I3 I, `# _
next;* A* I3 T/ B+ n5 v b' t
8 W& y0 K. B8 p' [( e2 \) n Buf:=str_to_obj(sprint("BF",@._From));4 U) n$ Z$ }' N, o s
@.move(Buf);; h* B* e6 J3 b) R
end; |