RAVE我不会用,只想用QREPORT组件,能实现报表里怎么画斜线吗?如何实现?
请高手帮忙!

解决方案 »

  1.   

    shuijin(水晶妹妹) 跑来啦??好久没见了
    楼主,有个专门的画斜线的第三方组件,带源码,你要的话留个email,我发给你
      

  2.   

    忘了说了,这个组件好像是从Tqrshape继承的,效果还挺不错的
      

  3.   

    mrfanghansheng(☆☆☆木鱼☆☆☆) ,先谢了
    [email protected]
      

  4.   

    (☆☆☆木鱼☆☆☆) 
    给我来一个,嘿嘿,我也是,这个问题在QR中,用图片总觉的不好
    [email protected]水晶妹妹,你会?
    嘿嘿,请教.............----------------
    过河卒
      

  5.   

    用图片// 画斜线的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.
    编译,注册,成一组件
      

  6.   

    ihihonline(小卒) ^_^,你老大也要???好,发!