今天需要打印一个标签,要求是3列,这就要求控制换行及X,Y坐标的变化。
最后经过努力实现了。

Code
1
2
procedure TForm1.Button3Click(Sender: TObject);
3
var
4
i,j,k:Integer;
5
x,y,m,n:Integer;
6
str:string;
7
begin
8
j:=0;
9
y:=30; //-->
10
x:=405; //-->X坐标
11
m:=340; //-->列间隔
12
n:=50; //-->行间隔
13
Memo1.Clear;
14
for i:=0 to lst.Count-1 do
15
begin
16
k:=i mod 3;
17
if (i<>0) and (k=0) then
18
begin
19
j:=j+1; //-->换行
20
end;
21
str:='^FO'+inttostr(y+(k*m))+','+inttostr(x+(j*n))+'^A'+BCFONT1+',20,5^FD'+lst[i]+'^FS';
22
Memo1.Lines.Add(str);
23
end;
应该还有优化的地方。
注:mod函数示例
x mod y--->
0 mod 3 =0;
1 mod 3 =1;
2 mod 3 =2;
3 mod 3 =0;
总结:
x=0 ,结果为0
x<y,结果为x
x=y,结果为0
x>y,结果为余数