用QRRichText1; procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep; var PrintReport: Boolean); begin self.QRRichText1.Lines.Text:='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'; end;
从数据库中读数据的话,你用qrrichtext和qrlabel都试一下:用QRRichText1; procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep; var PrintReport: Boolean); begin self.QRRichText1.Lines.Text:=adoquery.fieldbyname('fieldname').asstring; end; 用qrlabel: procedure TForm1.QRLabel1Print(sender: TObject; var Value: String); begin Value:=adoquery.fieldbyname('fieldname').asstring; end; 肯定至少有一个可以,我不方便试,你自己来吧。
procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
self.QRRichText1.Lines.Text:='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
end;
procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
self.QRRichText1.Lines.Text:=adoquery.fieldbyname('fieldname').asstring;
end;
用qrlabel:
procedure TForm1.QRLabel1Print(sender: TObject; var Value: String);
begin
Value:=adoquery.fieldbyname('fieldname').asstring;
end;
肯定至少有一个可以,我不方便试,你自己来吧。
如果输入:fjdskljfdkslfjdkls飞机抗敌素浪费假大空,也许自动折行应该在‘敌’字的位置折行,可是由于richtext把后面所有的汉字认为是一个整体,所以他会在‘飞’字就开始折行。 我的办法是一个字符一个字符的算,当到了我要折行的长度时,判断是汉字还是字母,如果是汉字而且刚好是汉字的一半的话,就少折一个字符…………嘿嘿,有点麻烦的