📄 qimport3reg.pas
字号:
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 + -