我在程序中动态为QRLabel赋值,我希望当QRLabel.Caption中的内容的长度到达QRLabel的右边界时,QRLabel能够自动折行显示。由于我不知道输入的中文何时总宽度会到达QRLabel的右边界,所以不知道在哪里插入#13,想问一下怎么才能让QRLabel自动让Caption中的值换行。
解决方案 »
- delphi 小数点运算怎么出现错误(我是新手)刚才发过贴子还是没有解决
- 为什么,我的delphi7在编译过程中出现,[Fatal Error] Internal error: LA30错误,为什么有时候又没有,请问是怎么一回事呢?
- ADOTable1.onPostError 问题
- 请教如何把listview1的数据copy到listview2中去嘛
- 写入注册表的这个方法怎么没用?
- 请问如果用DBcombobox中自动读取数据库某字段
- 请问如何把richedit中额字体大小,样式,颜色等存入SQL SERVER 或ACCESS中啊?急急!!
- 想把shockwave flash object注册进注册表里面去,请问怎样做
- Delphi 的朋友有QQ或MSN留下 联系联系!
- 怎样知道当前窗口是那个EXE文件运行时创建的
- 有关mediaplayer的控键
- 定位多条表记录?
QRLabel.Caption:='第一行'+#13+'第二行';
Procedure TForm1.Button1Click(Sender:TObject);
var
Str,nowStr,value:String;
i,Rownum:integer;
Begin
rownum:=1;
nowstr:='';
value:='';
Self.Font:=QRLabel1.Font;
Str:='aaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbcccccccccccccccccccc';
for i:=1 to Length(Str) do
Begin
if Canvas.TextWidth(nowstr+Str[i])>QRLabel1.width Then
Begin
nowstr:='';
value:=value+#13;
inc(Rownum);
nowstr:=nowstr+str[i];
value:=value+str[i];
End
else
Begin
nowstr:=nowstr+str[i];
value:=value+str[i];
end;
End;
QRLabel1.Caption:=value;
QRLabel1.Height:=QRLabel1.Height*Rownum;
End;