这个例子昨天正好看了,话说那本书的例子都很不错~* ?) U" P% g( p, Z! x5 j, L% [
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。; u' ?, T; e: a) X. ]
is
8 n* b1 h! o# k3 X# A0 u i,no,m:integer; --定义整型
2 E: R1 e: F5 M% K7 z8 J Buf:object; --定义object4 K) v; x0 P/ d/ @8 F: J
do, A" o V0 [1 ?; w. a
m:=0; A7 F8 o, j) J1 {0 x4 k3 C# ?
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)$ d. o2 y5 ^; x
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
+ j J% H; \- E& S) k if PartsNo=m and no<=PartsNo+PartsTable[2,i] then / f) J M& _; q1 ~
@._From:=PartsTable[5,i];
, O2 W `# D1 g. H& D U6 ?) |/ R' \ @._To:=PartsTable[6,i];
" o8 U" R; j' o if no=PartsNo+PartsTable[2,i] then $ y6 t# \5 N9 s, o& T: r7 Y. l% o
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)7 X8 m4 D' T8 `3 C0 m, d
' ?; x* g. }5 N+ D+ `: F end;
4 q7 ]- A+ }, S3 v' s1 D i:=PartsTable.YDim+1;, w! |$ b( |( _- i
end;
7 ?% ~) b" r7 l5 N0 O m:=m+PartsTable[2,i];2 t; `% @ J' ^2 m
next;" w4 U* V+ @. v
' c- `4 k8 M) G: }$ p' k" f Buf:=str_to_obj(sprint("BF",@._From));$ Y: D2 c2 w" v8 a1 b9 ?
@.move(Buf);# w1 p. r; N7 V5 m$ {- d
end; |