这个例子昨天正好看了,话说那本书的例子都很不错~ K* J& L" R5 s3 U, v! S& f4 c/ |
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
2 G- s ^. x+ {4 bis8 f0 ^+ J' }; ?* a& V
i,no,m:integer; --定义整型. J; n3 Z0 b* O
Buf:object; --定义object
: U% P' j; |' f' z: y9 c+ ?3 l" d5 e9 B7 ndo
8 C4 I- h4 h1 l m:=0;
- z$ j' E3 g! P q no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外), K5 H, H' N- m, U: P
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
/ e6 m' \. |( ^, [ if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
) f$ q6 c A+ N% I; C @._From:=PartsTable[5,i]; v0 [4 S3 R" K+ m" v; ]1 F6 a' @
@._To:=PartsTable[6,i];5 i/ W+ _1 a8 A; f5 u
if no=PartsNo+PartsTable[2,i] then
: D/ d: W2 H# x+ W PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
) r2 K# i" v( @$ [, Y/ k! G
; l1 @% @& B* u5 b# }/ ~& B; E end;$ R- v* d, G& o$ R; S9 m
i:=PartsTable.YDim+1;$ x* b9 x7 e" B9 d/ \4 N
end;
" v0 R6 E: n$ \, I" r' c: a3 ~ m:=m+PartsTable[2,i];
2 a5 o1 E: J, w% K7 e next;
0 R8 _0 m% U7 f$ \3 X0 `
, J( p! {" b" |3 T) x; y Buf:=str_to_obj(sprint("BF",@._From));5 z5 N8 d+ } z7 ~
@.move(Buf);
9 _& \8 @# a+ Pend; |