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

📄 qimport3reg.pas

📁 Advanced Data Import Component Suite for Borland Delphi and C++ Builder allows you to import your da
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit QImport3Reg;

{$I QImport3VerCtrl.Inc}

interface

uses SysUtils, Classes, {$IFNDEF VCL6} DsgnIntf
    {$ELSE} DesignIntf, DesignEditors {$ENDIF}, QImport3StrTypes;

type
// ********************
// Property editors ***
// ********************
  TQFileNameProperty = class(TStringProperty)
  protected
    function GetDefaultExt: string; virtual; abstract;
    function GetFilter: string; virtual; abstract;
  public
    procedure Edit; override;
    function GetAttributes: TPropertyAttributes; override;
  end;

  TQASCIIFileNameProperty = class(TQFileNameProperty)
  protected
    function GetDefaultExt: string; override;
    function GetFilter: string; override;
  end;

  TQDBFFileNameProperty = class(TQFileNameProperty)
  protected
    function GetDefaultExt: string; override;
    function GetFilter: string; override;
  end;

  TQXMLFileNameProperty = class(TQFileNameProperty)
  protected
    function GetDefaultExt: string; override;
    function GetFilter: string; override;
  end;

  TQXLSFileNameProperty = class(TQFileNameProperty)
  protected
    function GetDefaultExt: string; override;
    function GetFilter: string; override;
  end;

  TQTemplateFileNameProperty = class(TQFileNameProperty)
  protected
    function GetDefaultExt: string; override;
    function GetFilter: string; override;
  end;

  TQWizardFileNameProperty = class(TQFileNameProperty)
  protected
    function GetDefaultExt: string; override;
    function GetFilter: string; override;
  end;

  TQImportAboutProperty = class(TStringProperty)
  public
    function GetAttributes: TPropertyAttributes; override;
    function GetValue: string; override;
    procedure Edit; override;
  end;

  TQImportVersionProperty = class(TStringProperty)
  public
    function GetAttributes: TPropertyAttributes; override;
    function GetValue: string; override;
  end;

  TQFieldNameProperty = class(TStringProperty)
  public
    function GetAttributes: TPropertyAttributes; override;
    procedure GetValues(Proc: TGetStrProc); override;
  end;

{$IFDEF HTML}
{$IFDEF VCL6}
  TQHTMLFileNameProperty = class(TQFileNameProperty)
  protected
    function GetDefaultExt: string; override;
    function GetFilter: string; override;
  end;
{$ENDIF}
{$ENDIF}

{$IFDEF XMLDOC}
{$IFDEF VCL6}
  TQXMLDocFileNameProperty = class(TQFileNameProperty)
  protected
    function GetDefaultExt: string; override;
    function GetFilter: string; override;
  end;
{$ENDIF}
{$ENDIF}

{$IFDEF XLSX}
{$IFDEF VCL6}
  TQXlsxFileNameProperty = class(TQFileNameProperty)
  protected
    function GetDefaultExt: string; override;
    function GetFilter: string; override;
  end;
{$ENDIF}
{$ENDIF}

{$IFDEF DOCX}
{$IFDEF VCL6}
  TQDocxFileNameProperty = class(TQFileNameProperty)
  protected
    function GetDefaultExt: string; override;
    function GetFilter: string; override;
  end;
{$ENDIF}
{$ENDIF}

{$IFDEF ODS}
{$IFDEF VCL6}
  TQODSFileNameProperty = class(TQFileNameProperty)
  protected
    function GetDefaultExt: string; override;
    function GetFilter: string; override;
  end;
{$ENDIF}
{$ENDIF}

{$IFDEF ODT}
{$IFDEF VCL6}
  TQODTFileNameProperty = class(TQFileNameProperty)
  protected
    function GetDefaultExt: string; override;
    function GetFilter: string; override;
  end;
{$ENDIF}
{$ENDIF}

{$IFDEF ADO}
  TQAccessFileNameProperty = class(TQFileNameProperty)
  protected
    function GetDefaultExt: string; override;
    function GetFilter: string; override;
  end;

  TQAccessTableNameProperty = class(TStringProperty)
  public
    function GetAttributes: TPropertyAttributes; override;
    procedure GetValues(Proc: TGetStrProc); override;
  end;
{$ENDIF}

// *************************
// *** Component editors ***
// *************************

  TQImportWizardEditor = class(TComponentEditor)
    function GetVerbCount: integer; override;
    function GetVerb(Index: integer): string; override;
    procedure ExecuteVerb(Index: integer); override;
  end;

  TQImportXLSEditor = class(TComponentEditor)
    function GetVerbCount: integer; override;
    function GetVerb(Index: integer): string; override;
    procedure ExecuteVerb(Index: integer); override;
  end;

  TQImportDataSetEditor = class(TComponentEditor)
    function GetVerbCount: integer; override;
    function GetVerb(Index: integer): string; override;
    procedure ExecuteVerb(Index: integer); override;
  end;

  TQImportXMLEditor = class(TComponentEditor)
    function GetVerbCount: integer; override;
    function GetVerb(Index: integer): string; override;
    procedure ExecuteVerb(Index: integer); override;
  end;

  TQImportDBFEditor = class(TComponentEditor)
    function GetVerbCount: integer; override;
    function GetVerb(Index: integer): string; override;
    procedure ExecuteVerb(Index: integer); override;
  end;

  TQImportASCIIEditor = class(TComponentEditor)
    function GetVerbCount: integer; override;
    function GetVerb(Index: integer): string; override;
    procedure ExecuteVerb(Index: integer); override;
  end;

{$IFDEF HTML}
{$IFDEF VCL6}
  TQImportHTMLEditor = class(TComponentEditor)
    function GetVerbCount: integer; override;
    function GetVerb(Index: integer): string; override;
    procedure ExecuteVerb(Index: integer); override;
  end;
{$ENDIF}
{$ENDIF}

{$IFDEF XMLDOC}
{$IFDEF VCL6}
  TQImportXMLDocEditor = class(TComponentEditor)
    function GetVerbCount: integer; override;
    function GetVerb(Index: integer): string; override;
    procedure ExecuteVerb(Index: integer); override;
  end;
{$ENDIF}
{$ENDIF}

{$IFDEF XLSX}
{$IFDEF VCL6}
  TQImportXlsxEditor = class(TComponentEditor)
    function GetVerbCount: integer; override;
    function GetVerb(Index: integer): string; override;
    procedure ExecuteVerb(Index: integer); override;
  end;
{$ENDIF}
{$ENDIF}

{$IFDEF DOCX}
{$IFDEF VCL6}
  TQImportDocxEditor = class(TComponentEditor)
    function GetVerbCount: integer; override;
    function GetVerb(Index: integer): string; override;
    procedure ExecuteVerb(Index: integer); override;
  end;
{$ENDIF}
{$ENDIF}

{$IFDEF ODS}
{$IFDEF VCL6}
  TQImportODSEditor = class(TComponentEditor)
    function GetVerbCount: integer; override;
    function GetVerb(Index: integer): string; override;
    procedure ExecuteVerb(Index: integer); override;
  end;
{$ENDIF}
{$ENDIF}

{$IFDEF ODT}
{$IFDEF VCL6}
  TQImportODTEditor = class(TComponentEditor)
    function GetVerbCount: integer; override;
    function GetVerb(Index: integer): string; override;
    procedure ExecuteVerb(Index: integer); override;
  end;
{$ENDIF}
{$ENDIF}

procedure Register;

implementation

uses

  QImport3, QImport3XLS, QImport3DBF, QImport3ASCII, QImport3HTML,
  QImport3XML, QImport3DataSet, QImport3Wizard, QImport3Xlsx, QImport3Docx,
  QImport3ODS, QImport3ODT, {$IFDEF ADO}ADO_QImport3Access,{$ENDIF} QImport3Common, DB,
  QImport3StrIDs, Dialogs, fuQImport3DBFEditor, fuQImport3XMLEditor,
  fuQImport3TXTEditor, fuQImport3CSVEditor, fuQImport3DataSetEditor,
  fuQImport3About, fuQImport3FormatsEditor, fuQImport3XLSEditor,
  QImport3XMLDoc, fuQImport3XMLDocEditor, fuQImport3HTMLEditor,
  fuQImport3XlsxEditor, fuQImport3ODSEditor, fuQImport3ODTEditor,
  fuQImport3DocxEditor;

{$IFDEF VCL10}
{$R QImport3RegD10.dcr}
{$ELSE}
{$R QImport3Reg.dcr}
{$ENDIF}

procedure Register;
begin
  RegisterComponents(QI_PALETTE_PAGE,
    [TQImport3Wizard, TQImport3XLS, TQImport3DBF, TQImport3ASCII, TQImport3XML,
     TQImport3DataSet
    {$IFDEF HTML}{$IFDEF VCL6}, TQImport3HTML {$ENDIF}{$ENDIF}
    {$IFDEF XMLDOC}{$IFDEF VCL6}, TQImport3XMLDoc {$ENDIF}{$ENDIF}
    {$IFDEF DOCX}{$IFDEF VCL6}, TQImport3Xlsx {$ENDIF}{$ENDIF}
    {$IFDEF XLSX}{$IFDEF VCL6}, TQImport3Docx {$ENDIF}{$ENDIF}
    {$IFDEF ODS}{$IFDEF VCL6}, TQImport3ODS {$ENDIF}{$ENDIF}
    {$IFDEF ODT}{$IFDEF VCL6}, TQImport3ODT {$ENDIF}{$ENDIF}
    {$IFDEF ADO}, TADO_QImport3Access {$ENDIF}]);

// *********************************
// *** Register property editors ***
// *********************************

  RegisterPropertyEditor(TypeInfo(string), TQImport3ASCII, 'FileName',
                         TQASCIIFileNameProperty);

  RegisterPropertyEditor(TypeInfo(string), TQImport3DBF, 'FileName',
                         TQDBFFileNameProperty);

  RegisterPropertyEditor(TypeInfo(string), TQImport3XLS, 'FileName',
                         TQXLSFileNameProperty);

  RegisterPropertyEditor(TypeInfo(string), TQImport3Wizard, 'FileName',
                         TQWizardFileNameProperty);

  RegisterPropertyEditor(TypeInfo(string), TQImport3, 'About',
                         TQImportAboutProperty);
  RegisterPropertyEditor(TypeInfo(string), TQImport3, 'Version',
                         TQImportVersionProperty);

  RegisterPropertyEditor(TypeInfo(string), TQImport3Wizard, 'About',
                         TQImportAboutProperty);
  RegisterPropertyEditor(TypeInfo(string), TQImport3Wizard, 'Version',
                         TQImportVersionProperty);
  RegisterPropertyEditor(TypeInfo(string), TQImport3Wizard, 'TemplateFileName',
                         TQTemplateFileNameProperty);

  RegisterPropertyEditor(TypeInfo(string), TQImportFieldFormat, 'FieldName',
                         TQFieldNameProperty);
{$IFDEF HTML}
{$IFDEF VCL6}
  RegisterPropertyEditor(TypeInfo(string), TQImport3HTML, 'FileName',
                         TQHTMLFileNameProperty);
{$ENDIF}
{$ENDIF}
  RegisterPropertyEditor(TypeInfo(string), TQImport3XML, 'FileName',
                         TQXMLFileNameProperty);
{$IFDEF XMLDOC}
{$IFDEF VCL6}
  RegisterPropertyEditor(TypeInfo(string), TQImport3XMLDoc, 'FileName',
                         TQXMLDocFileNameProperty);
{$ENDIF}
{$ENDIF}
{$IFDEF XLSX}
{$IFDEF VCL6}
  RegisterPropertyEditor(TypeInfo(string), TQImport3Xlsx, 'FileName',
                         TQXlsxFileNameProperty);
{$ENDIF}
{$ENDIF}
{$IFDEF DOCX}
{$IFDEF VCL6}
  RegisterPropertyEditor(TypeInfo(string), TQImport3Docx, 'FileName',
                         TQDocxFileNameProperty);
{$ENDIF}
{$ENDIF}
{$IFDEF ODS}
{$IFDEF VCL6}
  RegisterPropertyEditor(TypeInfo(string), TQImport3ODS, 'FileName',
                         TQODSFileNameProperty);
{$ENDIF}
{$ENDIF}
{$IFDEF ODT}
{$IFDEF VCL6}
  RegisterPropertyEditor(TypeInfo(string), TQImport3ODT, 'FileName',
                         TQODTFileNameProperty);
{$ENDIF}
{$ENDIF}
{$IFDEF ADO}
  RegisterPropertyEditor(TypeInfo(string), TADO_QImport3Access, 'FileName',
                         TQAccessFileNameProperty);
  RegisterPropertyEditor(TypeInfo(string), TADO_QImport3Access, 'TableName',
                         TQAccessTableNameProperty);
{$ENDIF}

// *********************************
// *** Register component editors ***
// *********************************

  RegisterComponentEditor(TQImport3Wizard, TQImportWizardEditor);
  RegisterComponentEditor(TQImport3XLS, TQImportXLSEditor);
  RegisterComponentEditor(TQImport3DataSet, TQImportDataSetEditor);
  RegisterComponentEditor(TQImport3DBF, TQImportDBFEditor);
  RegisterComponentEditor(TQImport3XML, TQImportXMLEditor);
  RegisterComponentEditor(TQImport3ASCII, TQImportASCIIEditor);
{$IFDEF HTML}
{$IFDEF VCL6}
  RegisterComponentEditor(TQImport3HTML, TQImportHTMLEditor);
{$ENDIF}
{$ENDIF}
{$IFDEF XMLDOC}
{$IFDEF VCL6}
  RegisterComponentEditor(TQImport3XMLDoc, TQImportXMLDocEditor);
{$ENDIF}
{$ENDIF}
{$IFDEF XLSX}
{$IFDEF VCL6}
  RegisterComponentEditor(TQImport3Xlsx, TQImportXlsxEditor);
{$ENDIF}
{$ENDIF}
{$IFDEF DOCX}
{$IFDEF VCL6}
  RegisterComponentEditor(TQImport3Docx, TQImportDocxEditor);
{$ENDIF}
{$ENDIF}
{$IFDEF ODS}
{$IFDEF VCL6}
  RegisterComponentEditor(TQImport3ODS, TQImportODSEditor);
{$ENDIF}
{$ENDIF}
{$IFDEF ODT}
{$IFDEF VCL6}
  RegisterComponentEditor(TQImport3ODT, TQImportODTEditor);
{$ENDIF}
{$ENDIF}
end;

{ TQFileNameProperty }

procedure TQFileNameProperty.Edit;
var
  OD: TOpenDialog;
begin
  OD := TOpenDialog.Create(nil);
  try
    OD.DefaultExt := GetDefaultExt;
    OD.Filter := GetFilter;
    OD.FileName := GetStrValue;
    if OD.Execute then SetStrValue(OD.FileName);
  finally
    OD.Free;
  end;
end;

function TQFileNameProperty.GetAttributes: TPropertyAttributes;
begin
  Result := inherited GetAttributes + [paDialog];
end;

{ TQASCIIFileNameProperty }

function TQASCIIFileNameProperty.GetDefaultExt: string;
begin
  Result := 'txt';
end;

function TQASCIIFileNameProperty.GetFilter: string;
begin
  Result := QImportLoadStr(QIF_ASCII);
end;

{ TQDBFFileNameProperty }

function TQDBFFileNameProperty.GetDefaultExt: string;
begin
  Result := 'dbf';
end;

function TQDBFFileNameProperty.GetFilter: string;
begin
  Result := QImportLoadStr(QIF_DBF);
end;

{ TQHTMLFileNameProperty }

{$IFDEF HTML}
{$IFDEF VCL6}
function TQHTMLFileNameProperty.GetDefaultExt: string;
begin
  Result := 'html';
end;

function TQHTMLFileNameProperty.GetFilter: string;
begin
  Result := 'HTML files (*.htm, *.html)|*.htm; *.html';
end;
{$ENDIF}
{$ENDIF}

{ TQXMLFileNameProperty }

function TQXMLFileNameProperty.GetDefaultExt: string;
begin
  Result := 'xml';
end;

function TQXMLFileNameProperty.GetFilter: string;
begin
  Result := QImportLoadStr(QIF_XML);
end;

{ TQXMLDocFileNameProperty }

{$IFDEF XMLDOC}
{$IFDEF VCL6}
function TQXMLDocFileNameProperty.GetDefaultExt: string;
begin
  Result := 'xml';
end;

function TQXMLDocFileNameProperty.GetFilter: string;
begin
  Result := QImportLoadStr(QIF_XML);
end;
{$ENDIF}
{$ENDIF}

{ TQXLSFileNameProperty }

function TQXLSFileNameProperty.GetDefaultExt: string;
begin
  Result := 'xls';
end;

function TQXLSFileNameProperty.GetFilter: string;
begin
  Result := QImportLoadStr(QIF_XLS);
end;

{ TQTemplateFileNameProperty }

function TQTemplateFileNameProperty.GetDefaultExt: string;
begin
  Result := 'imp';
end;

function TQTemplateFileNameProperty.GetFilter: string;
begin
  Result := QImportLoadStr(QIF_TEMPLATE);
end;

{ TQWizardFileNameProperty }

function TQWizardFileNameProperty.GetDefaultExt: string;
begin

⌨️ 快捷键说明

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