200分——请问能否设置、如何设置QRLabel的行距??(200分)

  • 主题发起人 主题发起人 mouse_1425
  • 开始时间 开始时间
M

mouse_1425

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠,请帮帮小妹!为着在delphi中实现打印换行功能,我采用了某些字段用QRLabel表示,并编出如下代码(当中也解决了遇到奇数个数字/字母时候出现乱码的情况):

function stringenter(ss:string;icount:integer):string;
//ss表示原字符串,icount表示想在第几个字符换行,最好将icount设为偶数
var i,iEven:integer;//i表示循环变量,iEven表示含有多少个小于128的字符
begin
result:='';
while (icount<=length(ss)) do //字符串总个数是否大于iCount
begin
iEven:=0;
for i:=1 to icount do
if ord(ss)<128 then iEven:=iEven+1;
if ord(ss[icount])>127 then
begin
if (iEven mod 2)=0 then //在iCount个字符前面有偶数个小于128字符
begin
result:=result+copy(ss,1,icount)+#13;

delete(ss,1,icount);
end
else //在iCount个字符前面有奇数个小于128字符
begin
result:=result+copy(ss,1,icount-1)+#13;
delete(ss,1,icount-1);
end;
end
else
begin
result:=result+copy(ss,1,icount)+#13;
delete(ss,1,icount);
end;
end;

if length(ss)<>0 then
result:=result+copy(ss,1,length(ss));
end;

现在当一切都已经基本搞好的时候,领导却提出新的要求:这些QRLabel打印出来的字段没错是可以换行,但行与行之间的距离却太密了,要求把行距拉大!我试过在上述的程序中的“+#13”后面再多加上一个“+#13”,结果行距是可以拉大了,只是足足拉大了一行,又太大, 请问:QRLabel的属性里面有没有直接设置行距的属性啊?还是要在QRLabel的什么事件中设置什么代码才可以实现适当拉大行距的功能啊?还是直接在我的上述程序中再加上某些代码就可以直接拉大行距啊?(我曾经想过能不能在上述代码中定义什么top:=top+某数 来定义行距,但由于一页要打印的记录数不为1而为10,所以总觉得不妥)
请各位大侠帮帮我,教我如何设置好这些QRLabel的行距!!不胜感激!
 
各位请帮帮忙啊,十万火急。

如果有遇到这样的问题也可以说出来啊,大家一起讨论,一起进步啊

谢谢
 
怎么就是没人回答这个问题呢,是你们都没碰到过这样的问题都没想过这个问题吗,其实我
们可以说出来共同探讨啊!还是你们根本都不懂这问题的答案呢,难道这里的所谓大富翁都
只不过是。。。。
实在是太让人失望了!!!                    :(
 
本身应该没有这种属性的,不过你可以找一个有canvas的控件,自己用canvas.textout来输出,想往哪里画就在哪里画的。
 
俺一般是依靠对应的band来控制行距的
用qrlable,我刚才试了一下,#13#10产生的行距,还是比较合适的,其实,既然你有换行的问题,为什么不用QRRichText呢
 
首先感谢两位的热心帮忙!只是在下很菜,还有些问题不懂呢,请继续指导!
1213,你确定QRLabel是没有那个属性吗?canvas控件是什么来的,在哪里能找得到!!!
完颜康,你的意思是直接在程序中的+#13后再加上#10吗?怎么我试过好像并不能改变行距呢,似乎
不行呢,你真的试过可以改变行距吗?!怎么改法,还是我误会了呀!
还有如果采用QRRichTex,就能直接有属性令打印出来的内容换行吗??
 
canvas是画布的意思,你可以通过程序在他上面控件你要输出的内容。
 
多人接受答案了。
 

Similar threads

回复
0
查看
848
不得闲
D
回复
0
查看
825
DelphiTeacher的专栏
D
D
回复
0
查看
831
DelphiTeacher的专栏
D
D
回复
0
查看
664
DelphiTeacher的专栏
D
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部