QuickReport的QRMemo的行间距的设置(200分)

  • 主题发起人 主题发起人 artist
  • 开始时间 开始时间
A

artist

Unregistered / Unconfirmed
GUEST, unregistred user!
QuickReport的QrMemo控件的autoSize=False、autoStrech=True、
wordWrap=True时可以实现自动折行,但行与行的间隔有点过于小,
(尤其是在显示汉字的时候)请问那位大虾有绝招设置其行距?
 
另外,我并不想通过改变字体的方式实现。
 
memo类型的东西不支持行间距,就是richedit也如此.
M$不会让word的功能随便谁都可以做出来的.
 
难道没有别的途径解决这个问题吗?不知到各位高手碰到类似问题时,都采用什么方法解决?200分呢!
 
>>>并不想通过改变字体的方式实现。
那就没有办法解决了. :-)
你看看有几个软件可以支持"行间距"的? 只有少数几个字处理软件可以.
 
有这样悲惨吗?:( 难道大家都没遇到过这样的问题?除了放弃之外,有没有避开这个问题的方法?
 
有, 不用qr. 直接控制打印机可以做到
 
如何直接控制打印机可以控制行间距?难道你要直接在打印机的Canvas上计算每一行的位置,然后TextOut吗?那么对于打印数据库的Memo字段,要计算每一个Memo在每一行上可以显示几个字,计算显示位置,然后逐行TextOut,这个工作量太恐怖了,请您指点一二。
 
我从来没想过要控制"行间距",因为我知道那是不可能的.
 
正是, 计算每行, 用textout输出. 并没有您想象的那么恐怖(<100行代码).
 
写了一下, 50行之内可以搞定
正在实验将这段代码放到afterprint事件中(qr输出之后重画printer.canvas覆盖
原来memo的图案)
 
Another_eYes大虾,比如说我要显示的内容是某一个表中的内容,这个表可简化为
包含一个id号和此id号对应的备注共两个字段。现在要在打印机上打印出来。您老
人家说用afterPrint事件重画,覆盖掉原来的内容,会不会引起下一条记录显示的
不正常?别忘了,我要从数据库表中取好多Memo呢!
如果不完全靠计算每一行的位置TextOut的话,有没有别的好办法?
如果非要完全靠计算每一行的位置TextOut的话,有没有简单的写法?
 
>>>会不会引起下一条记录显示的不正常?别忘了,我要从数据库表中取好多Memo呢!
你设计时不会把qrmemo定到足够大吗?
 
另外,对于单字节和双字节混合的Memo,会不会造成某行最后显示了半个字?
 
考虑到了, 不然程序只要30行
 
eyes: 显示也可以解决吗?
 
当遇到回车符,将当前行TextOut,接着处理下一行,您也考虑了吗?
另外,你这样实现,还有必要借助于QuickReport吗?可以直接在打印机
的画布上写了吧?打印机的画布可以preview吗?
 
artist: 如果直接输出到printer上,设计报表时岂不是太麻烦了?
 
我考虑继承QrMemo做个控件, 估计override print方法大概能实现(没打印机无法调试)
直接想在qr外动手没什么门路
 

Similar threads

D
回复
0
查看
802
DelphiTeacher的专栏
D
D
回复
0
查看
747
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
696
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部