📄 fuqimport3formatseditor.pas
字号:
unit fuQImport3FormatsEditor;
interface
uses
Forms, QImport3, Db, StdCtrls, Controls, ComCtrls, Classes,
ExtCtrls{$IFDEF VCL4}, ImgList, ToolWin {$ENDIF};
type
TfmQImport3FormatsEditor = class(TForm)
paButtons: TPanel;
bOk: TButton;
bCancel: TButton;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
lstFields: TListView;
Bevel6: TBevel;
ilFields: TImageList;
pgFieldOptions: TPageControl;
tsFieldTuning: TTabSheet;
Bevel13: TBevel;
laGeneratorValue: TLabel;
laGeneratorStep: TLabel;
laConstantValue: TLabel;
laNullValue: TLabel;
laDefaultValue: TLabel;
laLeftQuote: TLabel;
laRightQuote: TLabel;
laQuoteAction: TLabel;
laCharCase: TLabel;
laCharSet: TLabel;
edGeneratorValue: TEdit;
edGeneratorStep: TEdit;
edConstantValue: TEdit;
edNullValue: TEdit;
edDefaultValue: TEdit;
edLeftQuote: TEdit;
edRightQuote: TEdit;
cbQuoteAction: TComboBox;
cbCharCase: TComboBox;
cbCharSet: TComboBox;
tbReplacements: TToolBar;
tbtAddReplacement: TToolButton;
tbtEditReplacement: TToolButton;
tbtDelReplacement: TToolButton;
laReplacements: TLabel;
lvReplacements: TListView;
procedure FormShow(Sender: TObject);
procedure edGeneratorValueChange(Sender: TObject);
procedure edGeneratorStepChange(Sender: TObject);
procedure edConstantValueChange(Sender: TObject);
procedure edNullValueChange(Sender: TObject);
procedure edDefaultValueChange(Sender: TObject);
procedure cbCharCaseChange(Sender: TObject);
procedure cbCharSetChange(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure lstFieldsEdited(Sender: TObject; Item: TListItem;
var S: String);
procedure lstFieldsChange(Sender: TObject; Item: TListItem;
Change: TItemChange);
procedure FormCreate(Sender: TObject);
procedure lvReplacementsChange(Sender: TObject; Item: TListItem;
Change: TItemChange);
procedure lvReplacementsDblClick(Sender: TObject);
procedure tbtAddReplacementClick(Sender: TObject);
procedure tbtEditReplacementClick(Sender: TObject);
procedure tbtDelReplacementClick(Sender: TObject);
procedure edLeftQuoteChange(Sender: TObject);
procedure edRightQuoteChange(Sender: TObject);
procedure cbQuoteActionChange(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
FComponent: TComponent;
FIsNecessaryListChange: Boolean;
FLoadingFormatItem: boolean;
FFormatItem: TListItem;
function GetGeneratorValue: integer;
function GetGeneratorStep: integer;
function GetConstantValue: string;
function GetNullValue: string;
function GetDefaultValue: string;
function GetLeftQuote: string;
function GetRightQuote: string;
function GetQuoteAction: TQuoteAction;
function GetCharCase: TQImportCharCase;
function GetCharSet: TQImportCharSet;
procedure SetGeneratorValue(const Value: integer);
procedure SetGeneratorStep(const Value: integer);
procedure SetConstantValue(const Value: string);
procedure SetNullValue(const Value: string);
procedure SetDefaultValue(const Value: string);
procedure SetLeftQuote(const Value: string);
procedure SetRightQuote(const Value: string);
procedure SetQuoteAction(const Value: TQuoteAction);
procedure SetCharCase(const Value: TQImportCharCase);
procedure SetCharSet(const Value: TQImportCharSet);
procedure FillFieldsList;
procedure ApplyChanges;
function DataByName(const AName: string): TQImportFieldFormat;
procedure SetEnabledControls;
function GetQImportFieldFormats: TQImportFieldFormats;
function GetDataSet: TDataSet;
procedure ShowFormatItem(Item: TListItem);
procedure TuneButtons;
public
property IsNecessaryListChange: Boolean read FIsNecessaryListChange
write FIsNecessaryListChange default True;
property FieldFormats: TQImportFieldFormats read GetQImportFieldFormats;
property DataSet: TDataSet read GetDataSet;
property GeneratorValue: integer read GetGeneratorValue
write SetGeneratorValue;
property GeneratorStep: integer read GetGeneratorStep
write SetGeneratorStep;
property ConstantValue: string read GetConstantValue
write SetConstantValue;
property NullValue: string read GetNullValue
write SetNullValue;
property DefaultValue: string read GetDefaultValue
write SetDefaultValue;
property LeftQuote: string read GetLeftQuote
write SetLeftQuote;
property RightQuote: string read GetRightQuote
write SetRightQuote;
property QuoteAction: TQuoteAction read GetQuoteAction
write SetQuoteAction;
property CharCase: TQImportCharCase read GetCharCase
write SetCharCase;
property CharSet: TQImportCharSet read GetCharSet
write SetCharSet;
end;
function RunFormatsEditor(AComponent: TComponent): boolean;
implementation
uses QImport3StrIDs, TypInfo, SysUtils, Windows,
fuQImport3ReplacementEdit;
{$R *.DFM}
function RunFormatsEditor(AComponent: TComponent): boolean;
begin
with TfmQImport3FormatsEditor.Create(nil) do
try
FComponent := AComponent;
FillFieldsList;
IsNecessaryListChange := False;
Result := ShowModal = mrOk;
if Result then ApplyChanges;
finally
Free;
end;
end;
{ TfmQImport3FormatsEditor }
function TfmQImport3FormatsEditor.GetGeneratorValue: integer;
begin
Result := StrToIntDef(edGeneratorValue.Text, 0);
end;
function TfmQImport3FormatsEditor.GetGeneratorStep: integer;
begin
Result := StrToIntDef(edGeneratorStep.Text, 0);
end;
function TfmQImport3FormatsEditor.GetConstantValue: string;
begin
Result := edConstantValue.Text;
end;
function TfmQImport3FormatsEditor.GetNullValue: string;
begin
Result := edNullValue.Text;
end;
function TfmQImport3FormatsEditor.GetDefaultValue: string;
begin
Result := edDefaultValue.Text;
end;
function TfmQImport3FormatsEditor.GetLeftQuote: string;
begin
Result := edLeftQuote.Text;
end;
function TfmQImport3FormatsEditor.GetRightQuote: string;
begin
Result := edRightQuote.Text;
end;
function TfmQImport3FormatsEditor.GetQuoteAction: TQuoteAction;
begin
case cbQuoteAction.ItemIndex of
1: Result := qaAdd;
2: Result := qaRemove;
else
Result := qaNone;
end;
end;
function TfmQImport3FormatsEditor.GetCharCase: TQImportCharCase;
begin
case cbCharCase.ItemIndex of
1: Result := iccUpper;
2: Result := iccLower;
3: Result := iccUpperFirst;
4: Result := iccUpperFirstWord;
else
Result := iccNone;
end;
end;
function TfmQImport3FormatsEditor.GetCharSet: TQImportCharSet;
begin
case cbCharSet.ItemIndex of
1: Result := icsAnsi;
2: Result := icsOem;
else
Result := icsNone;
end;
end;
procedure TfmQImport3FormatsEditor.SetGeneratorValue(const Value: integer);
begin
edGeneratorValue.Text := IntToStr(Value);
end;
procedure TfmQImport3FormatsEditor.SetGeneratorStep(const Value: integer);
begin
edGeneratorStep.Text := IntToStr(Value);
end;
procedure TfmQImport3FormatsEditor.SetConstantValue(const Value: string);
begin
edConstantValue.Text := Value;
end;
procedure TfmQImport3FormatsEditor.SetNullValue(const Value: string);
begin
edNullValue.Text := Value;
end;
procedure TfmQImport3FormatsEditor.SetDefaultValue(const Value: string);
begin
edDefaultValue.Text := Value;
end;
procedure TfmQImport3FormatsEditor.SetLeftQuote(const Value: string);
begin
edLeftQuote.Text := Value;
end;
procedure TfmQImport3FormatsEditor.SetRightQuote(const Value: string);
begin
edRightQuote.Text := Value;
end;
procedure TfmQImport3FormatsEditor.SetQuoteAction(const Value: TQuoteAction);
begin
case Value of
qaAdd: cbQuoteAction.ItemIndex := 1;
qaRemove: cbQuoteAction.ItemIndex := 2;
else
cbQuoteAction.ItemIndex := 0;
end;
end;
procedure TfmQImport3FormatsEditor.SetCharCase(const Value: TQImportCharCase);
begin
case Value of
iccUpper: cbCharCase.ItemIndex := 1;
iccLower: cbCharCase.ItemIndex := 2;
iccUpperFirst: cbCharCase.ItemIndex := 3;
iccUpperFirstWord: cbCharCase.ItemIndex := 4;
else
cbCharCase.ItemIndex := 0;
end;
end;
procedure TfmQImport3FormatsEditor.SetCharSet(const Value: TQImportCharSet);
begin
case Value of
icsAnsi: cbCharSet.ItemIndex := 1;
icsOem: cbCharSet.ItemIndex := 2;
else
cbCharSet.ItemIndex := 0;
end;
end;
procedure TfmQImport3FormatsEditor.FormShow(Sender: TObject);
begin
FIsNecessaryListChange := True;
Caption := FComponent.Name + '.DataFormats - Property editor';
SetEnabledControls;
end;
procedure TfmQImport3FormatsEditor.edGeneratorValueChange(Sender: TObject);
begin
if Assigned(lstFields.Selected) and not FLoadingFormatItem then begin
TQImportFieldFormat(lstFields.Selected.Data).GeneratorValue := GeneratorValue;
SetEnabledControls;
end;
end;
procedure TfmQImport3FormatsEditor.edGeneratorStepChange(Sender: TObject);
begin
if Assigned(lstFields.Selected) and not FLoadingFormatItem then begin
TQImportFieldFormat(lstFields.Selected.Data).GeneratorStep := GeneratorStep;
SetEnabledControls;
end;
end;
procedure TfmQImport3FormatsEditor.edConstantValueChange(Sender: TObject);
begin
if Assigned(lstFields.Selected) and not FLoadingFormatItem then begin
TQImportFieldFormat(lstFields.Selected.Data).ConstantValue := ConstantValue;
SetEnabledControls;
end;
end;
procedure TfmQImport3FormatsEditor.edNullValueChange(Sender: TObject);
begin
if Assigned(lstFields.Selected) and not FLoadingFormatItem then begin
TQImportFieldFormat(lstFields.Selected.Data).NullValue := NullValue;
SetEnabledControls;
end;
end;
procedure TfmQImport3FormatsEditor.edDefaultValueChange(Sender: TObject);
begin
if Assigned(lstFields.Selected) and not FLoadingFormatItem then begin
TQImportFieldFormat(lstFields.Selected.Data).DefaultValue := DefaultValue;
SetEnabledControls;
end;
end;
procedure TfmQImport3FormatsEditor.edLeftQuoteChange(Sender: TObject);
begin
if Assigned(lstFields.Selected) and not FLoadingFormatItem then begin
TQImportFieldFormat(lstFields.Selected.Data).LeftQuote := LeftQuote;
SetEnabledControls;
end;
end;
procedure TfmQImport3FormatsEditor.edRightQuoteChange(Sender: TObject);
begin
if Assigned(lstFields.Selected) and not FLoadingFormatItem then begin
TQImportFieldFormat(lstFields.Selected.Data).RightQuote := RightQuote;
SetEnabledControls;
end;
end;
procedure TfmQImport3FormatsEditor.cbQuoteActionChange(Sender: TObject);
begin
if Assigned(lstFields.Selected) and not FLoadingFormatItem then begin
TQImportFieldFormat(lstFields.Selected.Data).QuoteAction := QuoteAction;
SetEnabledControls;
end;
end;
procedure TfmQImport3FormatsEditor.cbCharCaseChange(Sender: TObject);
begin
if Assigned(lstFields.Selected) and not FLoadingFormatItem then begin
TQImportFieldFormat(lstFields.Selected.Data).CharCase := CharCase;
SetEnabledControls;
end;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -