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

📄 stdb2dbc.pas

📁 条码控件: 一维条码控件 二维条码控件 PDF417Barcode MaxiCodeBarcode
💻 PAS
字号:
(* ***** BEGIN LICENSE BLOCK *****
 * Version: MPL 1.1
 *
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * The Original Code is TurboPower SysTools
 *
 * The Initial Developer of the Original Code is
 * TurboPower Software
 *
 * Portions created by the Initial Developer are Copyright (C) 1996-2002
 * the Initial Developer. All Rights Reserved.
 *
 * Contributor(s):
 *
 * ***** END LICENSE BLOCK ***** *)

{*********************************************************}
{* SysTools: StDb2DBC.pas 4.03                           *}
{*********************************************************}
{* SysTools: Data-aware Two-Dimensional Barcodes         *}
{*********************************************************}

{$I StDefine.inc}

unit StDb2DBC;

interface

uses
  Windows,
  Messages,
  SysUtils,
  Classes,
  St2DBarC,
  Db,
  DbCtrls;

type

  TStDbPDF417Barcode = class(TStPDF417Barcode)
    protected {private}
      {.Z+}
      FCaptionDataLink : TFieldDataLink;
      FCodeDataLink    : TFieldDataLink;

      procedure CaptionDataChange(Sender : TObject);
      procedure CodeDataChange(Sender : TObject);
      function GetCaptionDataField : string;
      function GetCodeDataField : string;
      function GetDataSource : TDataSource;
      procedure SetCaptionDataField(const Value : string);
      procedure SetCodeDataField(const Value : string);
      procedure SetDataSource(Value : TDataSource);

    public
      constructor Create(AOwner : TComponent); override;
      destructor Destroy;
        override;
      {.Z+}
    published
      property Code stored False;
      property Caption stored False;

      property CaptionDataField : string
               read GetCaptionDataField write SetCaptionDataField;
      property CodeDataField : string
               read GetCodeDataField write SetCodeDataField;

      property DataSource : TDataSource read GetDataSource write SetDataSource;
  end;

  TStDbMaxiCodeBarcode = class(TStMaxiCodeBarcode)
    protected {private}
      {.Z+}
      FCaptionDataLink      : TFieldDataLink;
      FCodeDataLink         : TFieldDataLink;
      FCountryCodeDataLink  : TFieldDataLink;
      FPostalCodeDataLink   : TFieldDataLink;
      FServiceClassDataLink : TFieldDataLink;

      procedure CaptionDataChange (Sender : TObject);
      procedure CodeDataChange (Sender : TObject);
      procedure CountryCodeChange (Sender : TObject);

      function GetCaptionDataField : string;
      function GetCodeDataField : string;
      function GetCountryCodeDataField : string;
      function GetDataSource : TDataSource;
      function GetPostalCodeDataField : string;
      function GetServiceClassDataField : string;

      procedure PostalCodeChange (Sender : TObject);
      procedure ServiceClassChange (Sender : TObject);

      procedure SetCaptionDataField (const Value : string);
      procedure SetCodeDataField (const Value : string);
      procedure SetCountryCodeDataField (const Value : string);
      procedure SetDataSource (Value : TDataSource);
      procedure SetPostalCodeDataField (const Value : string);
      procedure SetServiceClassDataField (const Value : string);

    public
      constructor Create(AOwner : TComponent); override;
      destructor Destroy;
        override;
      {.Z+}
    published
      property Code stored False;
      property Caption stored False;

      property CaptionDataField : string
               read GetCaptionDataField write SetCaptionDataField;
      property CarrierCountryCodeDataField : string
               read GetCountryCodeDataField write SetCountryCodeDataField;
      property CarrierPostalCodeDataField : string
               read GetPostalCodeDataField write SetPostalCodeDataField;
      property CarrierServiceClassDataField : string
               read GetServiceClassDataField write SetServiceClassDataField;
      property CodeDataField : string
               read GetCodeDataField write SetCodeDataField;

      property DataSource : TDataSource read GetDataSource write SetDataSource;
  end;

implementation

{ TStDbPDF417Barcode }

constructor TStDbPDF417Barcode.Create(AOwner : TComponent);
begin
  inherited Create(AOwner);

  FCaptionDataLink := TFieldDataLink.Create;
  FCaptionDataLink.OnDataChange := CaptionDataChange;
  FCodeDataLink := TFieldDataLink.Create;
  FCodeDataLink.OnDataChange := CodeDataChange;
end;

destructor TStDbPDF417Barcode.Destroy;
begin
  FCaptionDataLink.OnDataChange := nil;
  FCaptionDataLink.Free;
  FCaptionDataLink := nil;
  FCodeDataLink.OnDataChange := nil;
  FCodeDataLink.Free;
  FCodeDataLink := nil;

  inherited Destroy;
end;

procedure TStDbPDF417Barcode.CaptionDataChange(Sender : TObject);
begin
  if FCaptionDataLink.Field = nil then
    Caption := '12345678922'
  else
    Caption := FCaptionDataLink.Field.DisplayText;
end;

procedure TStDbPDF417Barcode.CodeDataChange(Sender : TObject);
begin
  if FCodeDataLink.Field = nil then
    Code := '12345678922'
  else
    Code := FCodeDataLink.Field.DisplayText;
end;


function TStDbPDF417Barcode.GetCaptionDataField : string;
begin
  Result := FCaptionDataLink.FieldName;
end;

function TStDbPDF417Barcode.GetCodeDataField : string;
begin
  Result := FCodeDataLink.FieldName;
end;

function TStDbPDF417Barcode.GetDataSource : TDataSource;
begin
  Result := FCaptionDataLink.DataSource
end;

procedure TStDbPDF417Barcode.SetCaptionDataField(const Value : string);
begin
  FCaptionDataLink.FieldName := Value;
end;

procedure TStDbPDF417Barcode.SetCodeDataField(const Value : string);
begin
  FCodeDataLink.FieldName := Value;
end;

procedure TStDbPDF417Barcode.SetDataSource(Value : TDataSource);
begin
  FCaptionDataLink.DataSource := Value;
  FCodeDataLink.DataSource := Value;
end;

{ TStDbMaxiCodeBarcode }

constructor TStDbMaxiCodeBarcode.Create(AOwner : TComponent);
begin
  inherited Create(AOwner);

  FCaptionDataLink := TFieldDataLink.Create;
  FCaptionDataLink.OnDataChange := CaptionDataChange;
  FCodeDataLink := TFieldDataLink.Create;
  FCodeDataLink.OnDataChange := CodeDataChange;
  FCountryCodeDataLink := TFieldDataLink.Create;
  FCountryCodeDataLink.OnDataChange := CountryCodeChange;
  FPostalCodeDataLink := TFieldDataLink.Create;
  FPostalCodeDataLink.OnDataChange := PostalCodeChange;
  FServiceClassDataLink := TFieldDataLink.Create;
  FServiceClassDataLink.OnDataChange := ServiceClassChange; 
end;

destructor TStDbMaxiCodeBarcode.Destroy;
begin
  FCaptionDataLink.OnDataChange := nil;
  FCaptionDataLink.Free;
  FCaptionDataLink := nil;
  FCodeDataLink.OnDataChange := nil;
  FCodeDataLink.Free;
  FCodeDataLink := nil;
  FCountryCodeDataLink.OnDataChange := nil;
  FCountryCodeDataLink.Free;
  FCountryCodeDataLink := nil;
  FPostalCodeDataLink.OnDataChange := nil;
  FPostalCodeDataLink.Free;
  FPostalCodeDataLink := nil;
  FServiceClassDataLink.OnDataChange := nil;
  FServiceClassDataLink.Free;
  FServiceClassDataLink := nil;

  inherited Destroy;
end;

procedure TStDbMaxiCodeBarcode.CaptionDataChange(Sender : TObject);
begin
  if FCaptionDataLink.Field = nil then
    Caption := '12345678922'
  else
    Caption := FCaptionDataLink.Field.DisplayText;
end;

procedure TStDbMaxiCodeBarcode.CodeDataChange(Sender : TObject);
begin
  if FCodeDataLink.Field = nil then
    Code := '12345678922'
  else
    Code := FCodeDataLink.Field.DisplayText;
end;

procedure TStDbMaxiCodeBarcode.CountryCodeChange (Sender : TObject);
begin
  if FCountryCodeDataLink.Field = nil then
    CarrierCountryCode := 0
  else
    CarrierCountryCode := FCountryCodeDataLink.Field.AsInteger;
end;

function TStDbMaxiCodeBarcode.GetCaptionDataField : string;
begin
  Result := FCaptionDataLink.FieldName;
end;

function TStDbMaxiCodeBarcode.GetCodeDataField : string;
begin
  Result := FCodeDataLink.FieldName;
end;

function TStDbMaxiCodeBarcode.GetCountryCodeDataField : string;
begin
  Result := FCountryCodeDataLink.FieldName;
end;

function TStDbMaxiCodeBarcode.GetDataSource : TDataSource;
begin
  Result := FCaptionDataLink.DataSource
end;

function TStDbMaxiCodeBarcode.GetPostalCodeDataField : string;
begin
  Result := FPostalCodeDataLink.FieldName;
end;

function TStDbMaxiCodeBarcode.GetServiceClassDataField : string;
begin
  Result := FServiceClassDataLink.FieldName;
end;

procedure TStDbMaxiCodeBarcode.PostalCodeChange (Sender : TObject);
begin
  if FPostalCodeDataLink.Field = nil then
    CarrierPostalCode := '000'
  else
    CarrierPostalCode := FPostalCodeDataLink.Field.DisplayText;
end;

procedure TStDbMaxiCodeBarcode.ServiceClassChange (Sender : TObject);
begin
  if FServiceClassDataLink.Field = nil then
    CarrierServiceClass := 0
  else
    CarrierServiceClass := FServiceClassDataLink.Field.AsInteger;
end;

procedure TStDbMaxiCodeBarcode.SetCaptionDataField(const Value : string);
begin
  FCaptionDataLink.FieldName := Value;
end;

procedure TStDbMaxiCodeBarcode.SetCodeDataField(const Value : string);
begin
  FCodeDataLink.FieldName := Value;
end;

procedure TStDbMaxiCodeBarcode.SetCountryCodeDataField (const Value : string);
begin
  FCountryCodeDataLink.FieldName := Value;
end;

procedure TStDbMaxiCodeBarcode.SetDataSource(Value : TDataSource);
begin
  FCaptionDataLink.DataSource := Value;
  FCodeDataLink.DataSource := Value;
  FCountryCodeDataLink.DataSource := Value;
  FPostalCodeDataLink.DataSource := Value;
  FServiceClassDataLink.DataSource := Value;
end;

procedure TStDbMaxiCodeBarcode.SetPostalCodeDataField (const Value : string);
begin
  FPostalCodeDataLink.FieldName := Value;
end;

procedure TStDbMaxiCodeBarcode.SetServiceClassDataField (const Value : string);
begin
  FServiceClassDataLink.FieldName := Value;
end;

end.

⌨️ 快捷键说明

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