画布是可以画矩形的,可使用Canvas.Rectangle(x1,y1,x2,y2),其填充颜色由
Canvas.Brush.Color来指定,边框颜色由Canvas.Pen.Color指定。
条形码可以看做一系列宽度不一、颜色分黑白的矩形加上一系列数字组成。首先
将你的条形码转换成一个记录数组,定义为:
TBarCodeUnit=Record
TheColor:TColor;
TheWidth:Integer;
then
umber:Integer;
end;
TBarCodeArr=Array[1..n] of TBarCodeUnit;
//假设你的条形码有n个条纹,包括黑和白。
然后声明一个变量:
ABarCode:TBarCodeArr;
用指定的算法,将条形码的每条的颜色(clWhite或clBlack)、宽度和数字依次填入ABarCode中。
在报表上,用循环画出
x0:=条形码初始横坐标;
for i:=1 to ndo
begin
Canvas.Pen.Color:=ABarCode.Color;
Canvas.Brush.Color:=ABarCode.Color;
Canvas.Rectangle(x0,y0,x0+ABarCode.TheWidth,y0+TheHeight);
Canvas.TextOut(IntToStr(ABarCode.then
umber),x0+a,y0+b);
x0:=x0+ABarCode.TheWidth;
end;
其中,a和b用来修正数字与条纹之间的偏移,可通过实验确定;y0是初始纵坐标,
根据需要确定,TheHeight是条形码的高度,根据需要自己确定。