mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2025-08-26 11:17:57 +08:00
Remove no longer used TExportSaveDialog from HeidiComponents package.
Todo: Probably the remaining code could also live in helpers or so to get rid of that whole package.
This commit is contained in:
@ -26,7 +26,7 @@ package HeidiComponents;
|
||||
{$IMPLICITBUILD OFF}
|
||||
|
||||
requires
|
||||
vcl,
|
||||
rtl,
|
||||
dbrtl,
|
||||
ZComponent,
|
||||
ZParseSql,
|
||||
|
@ -47,11 +47,11 @@
|
||||
</DelphiCompile>
|
||||
<DCCReference Include="..\..\source\heidicomp.pas" />
|
||||
<DCCReference Include="dbrtl.dcp" />
|
||||
<DCCReference Include="vcl.dcp" />
|
||||
<DCCReference Include="rtl.dcp" />
|
||||
<DCCReference Include="ZComponent.dcp" />
|
||||
<DCCReference Include="ZCore.dcp" />
|
||||
<DCCReference Include="ZDbc.dcp" />
|
||||
<DCCReference Include="ZParseSql.dcp" />
|
||||
<DCCReference Include="ZPlain.dcp" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
</Project>
|
@ -3,66 +3,10 @@ unit heidicomp;
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows, Classes, Controls, Forms, Dialogs, SysUtils,
|
||||
ComCtrls, CommCtrl, StdCtrls, ExtCtrls, Graphics,
|
||||
ZDataset;
|
||||
Classes, ZDataset;
|
||||
|
||||
{$I const.inc}
|
||||
|
||||
type
|
||||
TVisibleOptions = (voCSV, voHTML);
|
||||
|
||||
|
||||
TExportSaveDialog = class(TSaveDialog)
|
||||
private
|
||||
FExtraPanel : TPanel;
|
||||
|
||||
FVisibleOptions : TVisibleOptions;
|
||||
|
||||
// Controls and vars for use with voCSV
|
||||
FFieldSepLabel,
|
||||
FLineSepLabel,
|
||||
FFieldEnclLabel : TLabel;
|
||||
|
||||
FFieldSepEdit,
|
||||
FLineSepEdit,
|
||||
FFieldEnclEdit : TEdit;
|
||||
|
||||
FFieldSep,
|
||||
FLineSep,
|
||||
FFieldEncl : string;
|
||||
|
||||
// Controls and vars for use with voHTML
|
||||
FConvertHTMLSpecialCharsCheckbox : TCheckBox;
|
||||
FConvertHTMLSpecialChars : Boolean;
|
||||
|
||||
|
||||
protected
|
||||
procedure DoClose; override;
|
||||
procedure DoShow; override;
|
||||
|
||||
procedure SetFieldSep(NewValue:string);
|
||||
procedure SetLineSep(NewValue:string);
|
||||
procedure SetFieldEncl(NewValue:string);
|
||||
procedure SetVisibleOptions(NewValue: TVisibleOptions);
|
||||
|
||||
procedure SetConvertHTMLSpecialChars(NewValue: Boolean);
|
||||
procedure ConvertHTMLSpecialCharsCheckboxOnclick(sender: TObject);
|
||||
|
||||
public
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
function Execute: Boolean; override;
|
||||
|
||||
published
|
||||
property FieldSep: string read FFieldSep write SetFieldSep;
|
||||
property LineSep: string read FLineSep write SetLineSep;
|
||||
property FieldEncl: string read FFieldEncl write SetFieldEncl;
|
||||
property VisibleOptions: TVisibleOptions read FVisibleOptions write SetVisibleOptions;
|
||||
property ConvertHTMLSpecialChars: Boolean read FConvertHTMLSpecialChars write SetConvertHTMLSpecialChars;
|
||||
|
||||
end;
|
||||
|
||||
type
|
||||
TDeferDataSet = class;
|
||||
TAsyncPostRunner = procedure(ds: TDeferDataSet) of object;
|
||||
@ -81,8 +25,6 @@ type
|
||||
procedure DoAsyncExecSql;
|
||||
end;
|
||||
|
||||
procedure Register;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
@ -127,279 +69,5 @@ begin
|
||||
inherited ExecSql;
|
||||
end;
|
||||
|
||||
procedure Register;
|
||||
begin
|
||||
RegisterComponents(APPNAME, [TExportSaveDialog]);
|
||||
end;
|
||||
|
||||
|
||||
// ***************************************************************
|
||||
// TExportSaveDialog
|
||||
|
||||
constructor TExportSaveDialog.Create(AOwner: TComponent);
|
||||
var
|
||||
xpos,
|
||||
spacing,
|
||||
edits_width,
|
||||
labels_top : Integer;
|
||||
begin
|
||||
inherited Create(AOwner);
|
||||
|
||||
// Create the panel on which we put all other controls
|
||||
FExtraPanel := TPanel.Create(self);
|
||||
FExtraPanel.BorderWidth := 0;
|
||||
FExtraPanel.BevelOuter := bvNone;
|
||||
FExtraPanel.BevelInner := bvNone;
|
||||
FExtraPanel.Name := 'ExtraPanel';
|
||||
FExtraPanel.Caption := '';
|
||||
FExtraPanel.TabOrder := 1;
|
||||
|
||||
xpos := 0; // used for Left-properties, increased with each component
|
||||
spacing := 5; // spacing between Labels and Edits.
|
||||
edits_width := 35; // standard-width for Edits
|
||||
labels_top := 4; // Labels need a bit more distance to top, so they get centered horizontally with the Edits
|
||||
|
||||
|
||||
// **** Add controls for use with voCSV
|
||||
|
||||
// Field-separator
|
||||
FFieldSepLabel := TLabel.Create(FExtraPanel);
|
||||
with FFieldSepLabel do
|
||||
begin
|
||||
Name := 'FieldSepLabel';
|
||||
Caption := 'Field-separator:';
|
||||
Left := spacing;
|
||||
Top := labels_top;
|
||||
Align := alNone;
|
||||
AutoSize := True;
|
||||
Parent := FExtraPanel;
|
||||
Tag := Byte(voCSV);
|
||||
Visible := (Tag = Integer(FVisibleOptions));
|
||||
inc(xpos, Width+spacing);
|
||||
end;
|
||||
FFieldSepEdit := TEdit.Create(FExtraPanel);
|
||||
with FFieldSepEdit do
|
||||
begin
|
||||
Name := 'FieldSepEdit';
|
||||
Left := xpos+spacing;
|
||||
Width := edits_width;
|
||||
Text := FieldSep;
|
||||
Enabled := True;
|
||||
Ctl3D:=true;
|
||||
MaxLength := 10;
|
||||
TabOrder := 1;
|
||||
Parent := FExtraPanel;
|
||||
Tag := Byte(voCSV);
|
||||
Visible := (Tag = Integer(FVisibleOptions));
|
||||
inc(xpos, Width+spacing);
|
||||
end;
|
||||
|
||||
// Line-terminator
|
||||
FLineSepLabel := TLabel.Create(FExtraPanel);
|
||||
with FLineSepLabel do
|
||||
begin
|
||||
Name := 'LineSepLabel';
|
||||
Caption := 'Line-terminator:';
|
||||
Left := xpos+spacing*2;
|
||||
Top := labels_top;
|
||||
Align := alNone;
|
||||
AutoSize := True;
|
||||
Parent := FExtraPanel;
|
||||
Tag := Byte(voCSV);
|
||||
Visible := (Tag = Integer(FVisibleOptions));
|
||||
inc(xpos, Width+spacing*2);
|
||||
end;
|
||||
FLineSepEdit := TEdit.Create(FExtraPanel);
|
||||
with FLineSepEdit do
|
||||
begin
|
||||
Name := 'LineSepEdit';
|
||||
Left := xpos+spacing;
|
||||
Width := edits_width;
|
||||
Text := LineSep;
|
||||
Enabled := True;
|
||||
Ctl3D:=true;
|
||||
MaxLength := 10;
|
||||
TabOrder := 2;
|
||||
Parent := FExtraPanel;
|
||||
Tag := Byte(voCSV);
|
||||
Visible := (Tag = Integer(FVisibleOptions));
|
||||
inc(xpos, Width+spacing);
|
||||
end;
|
||||
|
||||
// Field-encloser
|
||||
FFieldEnclLabel := TLabel.Create(FExtraPanel);
|
||||
with FFieldEnclLabel do
|
||||
begin
|
||||
Name := 'FieldEnclLabel';
|
||||
Caption := 'Field-encloser:';
|
||||
Left := xpos+spacing*2;
|
||||
Top := labels_top;
|
||||
Align := alNone;
|
||||
AutoSize := True;
|
||||
Parent := FExtraPanel;
|
||||
Tag := byte(voCSV);
|
||||
Visible := (Tag = Integer(FVisibleOptions));
|
||||
inc(xpos, Width+spacing*2);
|
||||
end;
|
||||
FFieldEnclEdit := TEdit.Create(FExtraPanel);
|
||||
with FFieldEnclEdit do
|
||||
begin
|
||||
Name := 'FieldEnclEdit';
|
||||
Left := xpos+spacing;
|
||||
Width := edits_width;
|
||||
Text := FieldEncl;
|
||||
Enabled := True;
|
||||
Ctl3D:=true;
|
||||
MaxLength := 10;
|
||||
TabOrder := 3;
|
||||
Tag := Byte(voCSV);
|
||||
Visible := (Tag = Integer(FVisibleOptions));
|
||||
Parent := FExtraPanel;
|
||||
end;
|
||||
|
||||
// **** Add controls for use with voHTML
|
||||
|
||||
xpos := 0;
|
||||
|
||||
// Convert HTMLSpecialChars?
|
||||
FConvertHTMLSpecialCharsCheckbox := TCheckbox.Create(FExtraPanel);
|
||||
with FConvertHTMLSpecialCharsCheckbox do
|
||||
begin
|
||||
Name := 'ConvertHTMLSpecialChars';
|
||||
Left := xpos+spacing;
|
||||
Top := labels_top;
|
||||
Caption := 'Convert special HTML-characters';
|
||||
Enabled := True;
|
||||
Ctl3D:=true;
|
||||
Width := 300;
|
||||
TabOrder := 1;
|
||||
Parent := FExtraPanel;
|
||||
OnClick := ConvertHTMLSpecialCharsCheckboxOnclick;
|
||||
Checked := ConvertHTMLSpecialChars;
|
||||
Tag := Byte(voHTML);
|
||||
Visible := (Tag = Integer(FVisibleOptions));
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
destructor TExportSaveDialog.Destroy;
|
||||
begin
|
||||
FFieldSepLabel.Free;
|
||||
FFieldSepEdit.Free;
|
||||
|
||||
FLineSepLabel.Free;
|
||||
FLineSepEdit.Free;
|
||||
|
||||
FFieldEnclLabel.Free;
|
||||
FFieldEnclEdit.Free;
|
||||
|
||||
FExtraPanel.Free;
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
procedure TExportSaveDialog.SetFieldSep(NewValue: String);
|
||||
begin
|
||||
if NewValue <> FieldSep then
|
||||
begin
|
||||
FFieldSep := NewValue;
|
||||
FFieldSepEdit.Text := FFieldSep;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TExportSaveDialog.SetLineSep(NewValue: String);
|
||||
begin
|
||||
if NewValue <> LineSep then
|
||||
begin
|
||||
FLineSep := NewValue;
|
||||
FLineSepEdit.Text := FLineSep;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TExportSaveDialog.SetFieldEncl(NewValue: String);
|
||||
begin
|
||||
if NewValue <> FieldEncl then
|
||||
begin
|
||||
FFieldEncl := NewValue;
|
||||
FFieldEnclEdit.Text := FFieldEncl;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure TExportSaveDialog.SetConvertHTMLSpecialChars(NewValue: Boolean);
|
||||
begin
|
||||
if NewValue <> ConvertHTMLSpecialChars then
|
||||
begin
|
||||
FConvertHTMLSpecialChars := NewValue;
|
||||
FConvertHTMLSpecialCharsCheckBox.Checked := FConvertHTMLSpecialChars;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TExportSaveDialog.ConvertHTMLSpecialCharsCheckboxOnclick(sender: TObject);
|
||||
begin
|
||||
SetConvertHTMLSpecialChars( FConvertHTMLSpecialCharsCheckbox.Checked );
|
||||
end;
|
||||
|
||||
|
||||
procedure TExportSaveDialog.DoClose;
|
||||
begin
|
||||
FFieldSep := FFieldSepEdit.Text;
|
||||
FLineSep := FLineSepEdit.Text;
|
||||
FFieldEncl := FFieldEnclEdit.Text;
|
||||
FConvertHTMLSpecialChars := FConvertHTMLSpecialCharsCheckbox.Checked;
|
||||
inherited DoClose;
|
||||
{ Hide any hint windows left behind }
|
||||
Application.HideHint;
|
||||
end;
|
||||
|
||||
procedure TExportSaveDialog.DoShow;
|
||||
var
|
||||
hSaveDlg : Cardinal;
|
||||
Rect1 : TRect;
|
||||
begin
|
||||
// the save Dialog window is the parent of the SaveDialog1.Handle
|
||||
hSaveDlg := GetParent(Handle);
|
||||
// for reasons of system message transfer you must place all your funtional
|
||||
// delphi controls on some Delphi WinControl, like a TPanel
|
||||
GetWindowRect(hSaveDlg, Rect1);
|
||||
// I increase the height of the SaveDialog1 with the MoveWindow function,
|
||||
// the Left and Top are meanigless, since Delphi will center the window
|
||||
MoveWindow(hSaveDlg, 3,3, Rect1.Right-Rect1.Left, Rect1.Bottom-Rect1.Top+30, True);
|
||||
|
||||
FExtraPanel.ParentWindow := hSaveDlg;
|
||||
FExtraPanel.SetBounds(0, Rect1.Bottom-Rect1.Top-30, Rect1.Right-Rect1.Left, 30);
|
||||
|
||||
inherited DoShow;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
function TExportSaveDialog.Execute: Boolean;
|
||||
begin
|
||||
{ if NewStyleControls and not (ofOldStyleDialog in Options) then
|
||||
Template := 'TEXTFILEDLG'
|
||||
//Template := 'DLGTEMPLATE'
|
||||
else
|
||||
Template := nil;}
|
||||
Result := inherited Execute;
|
||||
end;
|
||||
|
||||
procedure TExportSaveDialog.SetVisibleOptions( NewValue: TVisibleOptions );
|
||||
var
|
||||
i,
|
||||
comptag : Byte;
|
||||
begin
|
||||
// Hide/unhide option-controls
|
||||
if NewValue <> VisibleOptions then
|
||||
begin
|
||||
FVisibleOptions := NewValue;
|
||||
comptag := Byte(FVisibleOptions);
|
||||
|
||||
for i := 0 to FExtraPanel.ComponentCount - 1 do
|
||||
begin
|
||||
TWinControl(FExtraPanel.Components[i]).Visible := (FExtraPanel.Components[i].Tag = comptag)
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
end.
|
||||
|
Reference in New Issue
Block a user