丢人啊,TQRDBText换行的问题我都不会解决。D5和D6的QReport不一样么? (100分)

  • 主题发起人 主题发起人 wjiachun
  • 开始时间 开始时间
W

wjiachun

Unregistered / Unconfirmed
GUEST, unregistred user!
(2001-12-13 18:18:53) 老猫
QRDBText的属性 Autosize=false,WordWrap=true,高度也拉了很大
它获得文字后为什么不自动换行?
(2001-12-13 18:40:32) XXX
对了我想可能是有回行的它会回行,而没有回行的它则不会回行,我看了一下
dbtext的wordwarp属性就是直接从label继承下来的,所以应该和label的wordwarp
属性一样。
(2001-12-13 18:41:38) XXX
你试一下,如果真的是这样的话,那么就是概念上的错误啦。
(2001-12-13 18:36:32) 老猫
可是label这么设置是可以自动换行的啊,我取的是一样的数据
(2001-12-13 18:41:59) 老猫
The WordWrap property controls how a line of text that is too long to fit in
the width of the control is printed. If WordWrap is True the text will be
wrapped to a new line. If the AutoStretch property is True this might make
the control expand vertically.



我刚才用Delphi 6试试就发现没有问题了,可是这跟D5是没有关系的啊 :(

目前的疑问就是QReport这一套东西在D5和D6里的版本是一样的吧?
为什么结果不一样呢?



 
前段時間有人遇到過這個問題!我是沒有遇到
也許是你的delphi有問題或你的系統有問題
 
但是我换了几台机器都有这个问题啊,其他人有遇到的么?
 
没有你说的情况,TDBText可以自动换行
 
你这个问题一般都要写代码解决:
我是这样做的:
设TQRDBText的AutoSize:=False;AutoStretch:=True;WordWrap:=True;
在OnPrint加入:
procedure TXXForm.XXPrint(sender: TObject; var Value: String);
var
bExit : boolean;
iLen : integer;
strSource, strTemp : string;
begin
//32是栏宽。
if Length(Value) <= 32 then
exit;

strSource := Value;
Value := '';
//防止截断汉字。
while true do
begin
iLen := 1;
while iLen < 32 do
begin
if ord(strSource[iLen]) > 128 then
inc(iLen, 2)
else
inc(iLen);
end;
dec(iLen);


strTemp := Copy(strSource, 1, iLen);
//加回车。
if Value = '' then
Value := strTemp
else
Value := Value + #13 + strTemp;

strSource := Copy(strSource, iLen + 1, Length(strSource) - iLen);
if Length(strSource) <= 32 then
begin
Value := Value + #13 + strSource;
exit;
end;
end;
end;
给分吧
 
fpsky, 分数会给你的 :)

我刚才用Delphi 6试试就发现没有问题了,可是这跟D5是没有关系的啊 :(
 
在D5中,要想换行,除了:Autosize=false,WordWrap=true,高度也拉了很大
之外,要在Text中加入空格在能换行,即如果是"测试问题",就只能出现“测试”
二字,改为"测试 问题",就行了
测试
问题
时间挺长的了,你不妨试试
 
sun77wind, 谢谢,这点我还知道,而且数据库里的内容我不能改动的。


目前的疑问就是QReport这一套东西在D5和D6里的版本是一样的吧?
为什么结果不一样呢?
 
老猫,打印还是用FORMULA ONE吧,挺好的!
 
没有呀!
 
准备采用 fpsky的方案了。

荷塘新月,我现在只能用正版的Delphi,用F1 还要给钱的吧?
 
KAO!有正版的delphi?牛必!
 
asir, 又不是我花钱,再说预算时把这个钱也算进去了,没什么的吧?
 
我倒是觉得在D6中的换行有问题,
我发现过在同一个报表中有的记录换行能正常显示,但有的就不正常,后来我就放弃没用了。
 
我也遇到这个问题,到现在没有解决。谁能给我们答案。
 
加空格最方便,你数据库中的内容可以不变便,建个临时表存要打印的数据就行了,
 
算了,算了,给分。
 
汉字不能自动折行,英文可以,奶奶的谁让delphi是老外开发的呢?这辈子可能永不上
国产的开发工具了,悲哀。
 
我發現的卻是全角能換行,半角卻不能
 
tnnd,老子怎么试都不行,D6 + QR3.5 + QRDBText
 
后退
顶部