在Delphi5中,怎么才能让qrlabel的字符垂直居中!如果是用写控件的办法,是要重载哪个tqrlabel的哪一个方法和属性呢! (100分)

  • 主题发起人 主题发起人 dedema
  • 开始时间 开始时间
D

dedema

Unregistered / Unconfirmed
GUEST, unregistred user!
在Delphi5中,怎么才能让qrlabel的字符垂直居中!
如果是用写控件的办法,是要重载哪个tqrlabel的哪
一个方法和属性呢!
qrlabel中有一个属性alignment,是用来设置其标题
的水平位置的,但D5中没有设置垂直位置的属性,看来
只能从这个控件中继承写一个子类了。但现在我的电脑
上的delphi看来有毛病了,也是我的水平不济,请问要
继承哪一个属性,或者干脆给出源代码例子好了![blue][/blue]
 
如果只是为了程序中可以用,美观的话,您可以用Panel来代替。
如果学习新技术的话,您也可以看看TPanel的源代码,然后再试着写自己的代码。
 
panel可以在报表中使用吗?
我在D5中,就算把panel放到quickrep上,其它控件如qrlabel,qrchart可以
显示的情况下,panel就是不能显示的!
而且,我也试过了,无法看到qrlabel的代码的!
 
如果是继承qrlabel的paint方法,并不行得通的!
procedure TQRLabelx.paint;
var sss:string;
w,h:dword;
rct:trect;
const b:boolean=true;
begin
inherited;
 sss:= Caption ;
rct:=(self as tqrlabel).BoundsRect ;
w:=(self as tqrlabel).Canvas.TextHeight (sss);
h:=(self as tqrlabel).Canvas.TextWidth (sss);
(self as tqrlabel).Canvas.TextRect (rct,
trunc((rct.Left+rct.Right-w)/2),
trunc((rct.top+rct.bottom-h)/2),
sss);
end;
以上代码有错吗?怎么改啊!
 
我有一段代码,共大家参考:
begin
L:=length(FieldByName('DWMC').AsString);
for i:=1 to (L div 2) do
begin
GSMC_tmp:=copy(FieldByName('DWMC').AsString,(2*i-1),2);
GSMC[j]:=GSMC[j]+chr(13)+ GSMC_tmp;
end;//end i
d_table.Q_GSMC.Next;
end;//end j
 
不对吧!这段代码可以让字符串居中吗?
 
痛苦中..........................
这个简单的问题,多天没人来解决???????
 
你为什么要它垂直居中呢?!你的QRLABLE中难道有换行的问题吗???
在一般的情况下,你让它居中时它已经是垂直居中了呀?难道你调整了它的高度???
报表的问题我没作过深入的作过,所以对它不太清楚。
 
再次陷入深深的痛苦中...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
label的位置属性有alignment属性,可以让它的caption是中间,还是靠左或靠右显示。
它还有个layout属性,可以让它的caption是中间,还是顶部或是底部显示。
但是tqrlabel只有alignment,没有layout属性,以L开头的属性只有Left的....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
用换行的办法,解决不了居中的问题的。
 
多人接受答案了。
 
后退
顶部