⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frxpbarcode.pas

📁 报表源码 FastReport 3 is new generation of the report generators components. It consists of report engin
💻 PAS
字号:
{******************************************}
{ }
{ FastReport v3.0 }
{ PSOFT Barcode Add-in object }
{ http://www.psoft.sk }
{ }
{ Copyright (c) 1998-2005 }
{ by Alexander Tzyganenko, }
{ Fast Reports Inc. }
{ }
{******************************************}

unit frxPBarcode;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Menus, EanKod, EanSpecs, frxClass, ExtCtrls
{$IFDEF Delphi6}
, Variants
{$ENDIF};
  

type
  TfrxPBarCodeObject = class(TComponent); // fake component

  TfrxPBarCodeView = class(TfrxView)
  private
    FBarCode:TEan;
    FExpression:String;
    FText:String;
    FLinesColor:TColor;
    FBarType:TTypBarCode;
    FRotation:Integer;
    FFontAutoSize:Boolean;
    FCalcCheckSum:Boolean;
    FShowText:Boolean;
  public
    constructor Create(AOwner:TComponent); override;
    destructor Destroy; override;
    procedure Draw(Canvas:TCanvas; ScaleX, ScaleY, OffsetX, OffsetY:Extended); override;
    procedure GetData; override;
    class function GetDescription:String; override;
    property BarCode:TEan read FBarCode;
  published
    property LinesColor:TColor read FLinesColor write FLinesColor default clBlack;
    property BarType:TTypBarCode read FBarType write FBarType;
    property Rotation:Integer read FRotation write FRotation;
    property Font;
    property FontAutoSize:Boolean read FFontAutoSize write FFontAutoSize default True;
    property CalcCheckSum:Boolean read FCalcCheckSum write FCalcCheckSum default False;
    property ShowText:Boolean read FShowText write FShowText default True;
    property Color;
    property DataField;
    property DataSet;
    property DataSetName;
    property Expression:String read FExpression write FExpression;
    property Frame;
    property Text:String read FText write FText;
  end;

implementation

uses
{$IFNDEF NO_EDITORS}
  frxPBarcodeEditor,
{$ENDIF}
  frxPBarcodeRTTI, frxDsgnIntf, frxRes;

{ TfrxPBarCodeView }

constructor TfrxPBarCodeView.Create(AOwner:TComponent);
begin
  inherited;
  FBarCode:= TEan.Create(nil);
  FLinesColor:= clBlack;
  FFontAutoSize:= True;
  FShowText:= True;
end;

destructor TfrxPBarCodeView.Destroy;
begin
  FBarCode.Free;
  inherited Destroy;
end;

class function TfrxPBarCodeView.GetDescription:String;
begin
  Result:= 'PSOFT Barcode object';
end;

procedure TfrxPBarCodeView.Draw(Canvas:TCanvas; ScaleX, ScaleY, OffsetX,
  OffsetY:Extended);
begin
  FBarCode.LinesColor:= FLinesColor;
  FBarCode.BackgroundColor:= Color;
  FBarCode.Transparent:= Color = clNone;

  FBarCode.Angle:= FRotation;
  FBarCode.Font.Assign(Font);
  FBarCode.FontAutoSize:= FFontAutoSize;

  FBarCode.AutoCheckDigit:= FCalcCheckSum;
  FBarCode.TypBarCode:= FBarType;
  if FText<>'' then
    FBarCode.BarCode:= FText;
  FBarcode.ShowLabels:= FShowText;

  BeginDraw(Canvas, ScaleX, ScaleY, OffsetX, OffsetY);
  PaintBarCode(Canvas, Rect(FX, FY, FX1, FY1), FBarCode);
  DrawFrame;
end;

procedure TfrxPBarCodeView.GetData;
begin
  inherited;
  if IsDataField then
    FText:= DataSet.Value[DataField]
  else if FExpression<>'' then
    FText:= Report.Calc(FExpression);
end;

initialization
  frxObjects.RegisterObject1(TfrxPBarCodeView, nil, '', 'Other', 0, 23);

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -