急!报表里怎么画斜线?在线等。 RAVE我不会用,只想用QREPORT组件,能实现报表里怎么画斜线吗?如何实现?请高手帮忙! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 shuijin(水晶妹妹) 跑来啦??好久没见了楼主,有个专门的画斜线的第三方组件,带源码,你要的话留个email,我发给你 忘了说了,这个组件好像是从Tqrshape继承的,效果还挺不错的 mrfanghansheng(☆☆☆木鱼☆☆☆) ,先谢了[email protected] (☆☆☆木鱼☆☆☆) 给我来一个,嘿嘿,我也是,这个问题在QR中,用图片总觉的不好[email protected]水晶妹妹,你会?嘿嘿,请教.............----------------过河卒 用图片// 画斜线的quickReport 控件unit qrline;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, quickrpt;type TQRLineStyle = (QRLineH,QRLineV,QRLineC); TQRLine = class(TQRPrintable) private FPen: TPen; FLineStyle: TQRLineStyle; procedure setPen(value: TPen); procedure setLineStyle(value: TQRLineStyle); procedure onPenChanged(Sendoer: TObject); protected { Protected declarations } public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Paint; override; procedure Print(OfsX, OfsY : integer); override; published property Pen: TPen read FPen write setPen; property LineStyle: TQRLineStyle read FLineStyle write setLineStyle; end;procedure Register;implementationconstructor TQRLine.Create(AOwner: TComponent);begin inherited Create(AOwner); ControlStyle := ControlStyle - [csOpaque]; FPen := TPen.Create; FPen.OnChange := onPenChanged; width := 100; height := 100;end;destructor TQRLine.Destroy;begin FPen.Free; inherited Destroy;end;procedure TQRLine.SetPen(Value: TPen);begin FPen.Assign(value); Invalidate;end;procedure TQRLine.setLineStyle(value: TQRLineStyle);begin if FLineStyle <> value then begin FLineStyle := value; Invalidate; end;end;procedure TQRLine.onPenChanged(Sendoer: TObject);begin Invalidate;end;procedure TQRLine.Paint;var calDiff: integer;begin with Canvas do begin Pen := FPen; calDiff := Pen.Width div 2; MoveTo(calDiff,calDiff); case LineStyle of QRLineH: LineTo(width, 0 + calDiff); QRLineV: LineTo(calDiff, Height); QRLineC: LineTo(width, Height); end; end;end;procedure TQRLine.Print(OfsX, OfsY : integer);var CalcLeft, CalcTop, CalcRight, CalcBottom: integer;begin with ParentReport.QRPrinter do begin Canvas.Pen := FPen; CalcLeft := XPos(OfsX + Size.Left); CalcTop := YPos(OfsY + Size.Top); CalcRight := XPos(OfsX + Size.Left + Size.Width); CalcBottom := YPos(OfsY + Size.Top + Size.Height); with Canvas do begin MoveTo(CalcLeft,CalcTop); case LineStyle of QRLineH: LineTo(CalcRight, CalcTop); QRLineV: LineTo(CalcLeft, CalcBottom); QRLineC: LineTo(CalcRight, CalcBottom); end; end; end;end;procedure Register;begin RegisterComponents('QReport', [TQRLine]);end;end.编译,注册,成一组件 ihihonline(小卒) ^_^,你老大也要???好,发! delphi 2010编译的文件,运行的时候需不需要电脑.NET的支持? 如何把随机数加入grid里面 解决35进制的问题!! 数据导入 如何实现在EDIT框边上有一个小省略号的按钮,就象FONT那样的? 告--------- CSDN 数据库 管理员----------书 数据库的问题 怎样才能充分利用数据感应控件?? 下班前,最后一问,如何让RichEdit中的不同行,用不同的颜色显示? 关于字符串操作的一个简单问题。 date 小问题 关于文件传输问题! 发到我信箱的给分
楼主,有个专门的画斜线的第三方组件,带源码,你要的话留个email,我发给你
[email protected]
给我来一个,嘿嘿,我也是,这个问题在QR中,用图片总觉的不好
[email protected]水晶妹妹,你会?
嘿嘿,请教.............----------------
过河卒
unit qrline;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
quickrpt;type
TQRLineStyle = (QRLineH,QRLineV,QRLineC); TQRLine = class(TQRPrintable)
private
FPen: TPen;
FLineStyle: TQRLineStyle;
procedure setPen(value: TPen);
procedure setLineStyle(value: TQRLineStyle);
procedure onPenChanged(Sendoer: TObject);
protected
{ Protected declarations }
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override; procedure Paint; override;
procedure Print(OfsX, OfsY : integer); override;
published
property Pen: TPen read FPen write setPen;
property LineStyle: TQRLineStyle read FLineStyle write setLineStyle;
end;procedure Register;implementationconstructor TQRLine.Create(AOwner: TComponent);
begin
inherited Create(AOwner); ControlStyle := ControlStyle - [csOpaque];
FPen := TPen.Create;
FPen.OnChange := onPenChanged;
width := 100;
height := 100;
end;destructor TQRLine.Destroy;
begin
FPen.Free; inherited Destroy;
end;procedure TQRLine.SetPen(Value: TPen);
begin
FPen.Assign(value);
Invalidate;
end;procedure TQRLine.setLineStyle(value: TQRLineStyle);
begin
if FLineStyle <> value then
begin
FLineStyle := value;
Invalidate;
end;
end;procedure TQRLine.onPenChanged(Sendoer: TObject);
begin
Invalidate;
end;procedure TQRLine.Paint;
var
calDiff: integer;
begin
with Canvas do
begin
Pen := FPen;
calDiff := Pen.Width div 2;
MoveTo(calDiff,calDiff);
case LineStyle of
QRLineH: LineTo(width, 0 + calDiff);
QRLineV: LineTo(calDiff, Height);
QRLineC: LineTo(width, Height);
end;
end;
end;procedure TQRLine.Print(OfsX, OfsY : integer);
var
CalcLeft,
CalcTop,
CalcRight,
CalcBottom: integer;
begin
with ParentReport.QRPrinter do
begin
Canvas.Pen := FPen;
CalcLeft := XPos(OfsX + Size.Left);
CalcTop := YPos(OfsY + Size.Top);
CalcRight := XPos(OfsX + Size.Left + Size.Width);
CalcBottom := YPos(OfsY + Size.Top + Size.Height);
with Canvas do
begin
MoveTo(CalcLeft,CalcTop);
case LineStyle of
QRLineH:
LineTo(CalcRight, CalcTop);
QRLineV:
LineTo(CalcLeft, CalcBottom);
QRLineC:
LineTo(CalcRight, CalcBottom);
end;
end;
end;
end;procedure Register;
begin
RegisterComponents('QReport', [TQRLine]);
end;end.
编译,注册,成一组件