这个例子昨天正好看了,话说那本书的例子都很不错~
: b. M8 l9 J: c8 K/ n不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。/ r, s& [) P" d
is
$ Z5 c5 s+ ]" p: r; l i,no,m:integer; --定义整型, G; E" l1 l% I' g) `
Buf:object; --定义object
5 x) _; Z+ U- Pdo2 B7 G: `( c/ y% s1 Y, k6 A2 ~; I- S
m:=0;
1 G% b6 a" o, V no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
) n0 i; }* Q# j* f# @ for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
. i. P2 ~0 }! w2 z# [# v+ a if PartsNo=m and no<=PartsNo+PartsTable[2,i] then + b* ?0 m6 k! f& M% `
@._From:=PartsTable[5,i]; + X- [1 {$ s1 k9 m) u; ~% b
@._To:=PartsTable[6,i];
2 Q2 J( Q9 r7 j" r; g. o. I, @" D if no=PartsNo+PartsTable[2,i] then
2 r7 W( @ L" n4 L" @ PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
& d F+ i9 A$ I* x$ a- I3 W" L8 i0 Y- Y d
end;
% g' w# d. p5 c+ h$ w i:=PartsTable.YDim+1;
. f/ f9 D. D& J7 ~! W, J2 ?% a end;3 h4 m9 R; t) E' T5 ~, O
m:=m+PartsTable[2,i];% t* e, O$ @5 Q/ a
next;9 k0 n% b/ D' }" x
1 p6 K e* r: h- j, w& ]) U& e
Buf:=str_to_obj(sprint("BF",@._From));/ _6 |! q8 [3 B: h) U7 i; l
@.move(Buf);+ l2 k9 A9 f" s) A1 G7 s4 x$ x
end; |