Componentes.Terceros.FastRe.../internal/4.2/1/Source/frxPBarcode.pas
2007-11-18 19:40:07 +00:00

206 lines
5.5 KiB
ObjectPascal

{******************************************}
{ }
{ FastReport v4.0 }
{ PSOFT Barcode Add-in object }
{ http://www.psoft.sk }
{ }
{ Copyright (c) 1998-2007 }
{ by Alexander Tzyganenko, }
{ Fast Reports Inc. }
{ }
{******************************************}
unit frxPBarcode;
interface
{$I frx.inc}
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;
function GetPDF417: TpsPDF417;
function GetSecurity: Boolean;
function GetHorzLines: TBarcodeHorzLines;
function GetStartStopLine: Boolean;
function GetTrasparent: Boolean;
procedure SetPDF417(const Value: TpsPDF417);
procedure SetSecurity(const Value: Boolean);
procedure SetHorzLines(const Value: TBarcodeHorzLines);
procedure SetStartStopLines(const Value: Boolean);
procedure SetTrasparent(const Value: 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 HorzLines: TBarcodeHorzLines read GetHorzLines write SetHorzLines;
property Security: Boolean read GetSecurity write SetSecurity;
property PDF417: TpsPDF417 read GetPDF417 write SetPDF417;
property StartStopLines: Boolean read GetStartStopLine write SetStartStopLines;
property Trasparent: Boolean read GetTrasparent write SetTrasparent;
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;
function TfrxPBarCodeView.GetPDF417: TpsPDF417;
begin
Result := FBarCode.PDF417;
end;
procedure TfrxPBarCodeView.SetPDF417(const Value: TpsPDF417);
begin
FBarCode.PDF417 := Value;
end;
function TfrxPBarCodeView.GetSecurity: Boolean;
begin
Result := FBarCode.Security;
end;
procedure TfrxPBarCodeView.SetSecurity(const Value: Boolean);
begin
FBarCode.Security := Value;
end;
function TfrxPBarCodeView.GetHorzLines: TBarcodeHorzLines;
begin
Result := FBarCode.HorzLines;
end;
procedure TfrxPBarCodeView.SetHorzLines(const Value: TBarcodeHorzLines);
begin
FBarCode.HorzLines := Value;
end;
function TfrxPBarCodeView.GetStartStopLine: Boolean;
begin
Result := FBarCode.StartStopLines;
end;
procedure TfrxPBarCodeView.SetStartStopLines(const Value: Boolean);
begin
FBarCode.StartStopLines := Value;
end;
function TfrxPBarCodeView.GetTrasparent: Boolean;
begin
Result := FBarCode.Transparent;
end;
procedure TfrxPBarCodeView.SetTrasparent(const Value: Boolean);
begin
FBarCode.Transparent := Value;
end;
initialization
frxObjects.RegisterObject1(TfrxPBarCodeView, nil, '', 'Other', 0, 23);
end.
//a925ad72a1da9d8873ffb721772811b5
//862fd5d6aa1a637203d9b08a3c0bcfb0