git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.jvcl@12 7f62d464-2af8-f54e-996c-e91b33f51cbe
207 lines
6.1 KiB
ObjectPascal
207 lines
6.1 KiB
ObjectPascal
{******************************************************************
|
|
|
|
JEDI-VCL Demo
|
|
|
|
Copyright (C) 2002 Project JEDI
|
|
|
|
Original author:
|
|
|
|
Contributor(s):
|
|
|
|
You may retrieve the latest version of this file at the JEDI-JVCL
|
|
home page, located at http://jvcl.sourceforge.net
|
|
|
|
The contents of this file are used with permission, 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/MPL-1_1Final.html
|
|
|
|
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.
|
|
|
|
******************************************************************}
|
|
|
|
{*******************************************************}
|
|
{ }
|
|
{ Delphi VCL Extensions (RX) demo program }
|
|
{ }
|
|
{ Copyright (c) 1996 AO ROSNO }
|
|
{ Copyright (c) 1997 Master-Bank }
|
|
{ }
|
|
{*******************************************************}
|
|
|
|
unit DestTab;
|
|
|
|
interface
|
|
|
|
uses Windows, SysUtils, Classes, Graphics, Forms, Controls,
|
|
StdCtrls, ExtCtrls, FileCtrl, Mask, JvToolEdit, DB, DBTables,
|
|
JvValidateEdit, JvComponent, JvFormPlacement, JvEdit, JvExStdCtrls,
|
|
JvExMask;
|
|
|
|
type
|
|
TDestTableDlg = class(TForm)
|
|
OkBtn: TButton;
|
|
CancelBtn: TButton;
|
|
FormStorage: TJvFormStorage ;
|
|
TypeBtn: TRadioGroup;
|
|
TabnameEdit: TJvFilenameEdit ;
|
|
Label1: TLabel;
|
|
RecordCountBox: TGroupBox;
|
|
AllRecsBtn: TRadioButton;
|
|
FirstRecsBtn: TRadioButton;
|
|
Label2: TLabel;
|
|
RecordCntEdit: TJvValidateEdit;
|
|
procedure TabnameEditAfterDialog(Sender: TObject; var Name: string;
|
|
var Action: Boolean);
|
|
procedure TabnameEditChange(Sender: TObject);
|
|
procedure TypeBtnClick(Sender: TObject);
|
|
procedure OkBtnClick(Sender: TObject);
|
|
procedure RecordCountBtnClick(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
function GetTableType: TTableType;
|
|
procedure SetTableType(Value: TTableType);
|
|
function GetTableName: string;
|
|
procedure SetTableName(const Value: string);
|
|
protected
|
|
procedure CreateParams(var Params: TCreateParams); override;
|
|
public
|
|
{ Public declarations }
|
|
property TableType: TTableType read GetTableType write SetTableType;
|
|
property TableName: string read GetTableName write SetTableName;
|
|
end;
|
|
|
|
function GetDestTable(var TabName: string; var TabType: TTableType;
|
|
var RecordCount: Longint): Boolean;
|
|
|
|
implementation
|
|
|
|
{$B-}
|
|
|
|
uses
|
|
Consts, Dialogs, JvJVCLUtils, JvJCLUtils, Main;
|
|
|
|
{$R *.DFM}
|
|
|
|
function GetDestTable(var TabName: string; var TabType: TTableType;
|
|
var RecordCount: Longint): Boolean;
|
|
begin
|
|
with TDestTableDlg.Create(Application) do
|
|
try
|
|
FormStorage.RestoreFormPlacement;
|
|
if TabType <> ttDefault then TableType := TabType;
|
|
if TabName <> '' then TableName := TabName;
|
|
if RecordCount <> 0 then begin
|
|
RecordCntEdit.AsInteger := RecordCount;
|
|
FirstRecsBtn.Checked := True;
|
|
end;
|
|
Result := ShowModal = mrOk;
|
|
if Result then begin
|
|
TabName := TableName;
|
|
TabType := TableType;
|
|
RecordCount := 0;
|
|
if FirstRecsBtn.Checked then
|
|
RecordCount := RecordCntEdit.AsInteger;
|
|
end;
|
|
finally
|
|
Free;
|
|
end;
|
|
end;
|
|
|
|
function DefExtension(TableType: TTableType): string;
|
|
begin
|
|
case TableType of
|
|
ttParadox: Result := '.DB';
|
|
ttDBase: Result := '.DBF';
|
|
ttASCII: Result := '.TXT';
|
|
else Result := '';
|
|
end;
|
|
end;
|
|
|
|
{ TDestTableDlg }
|
|
|
|
procedure TDestTableDlg.CreateParams(var Params: TCreateParams);
|
|
begin
|
|
inherited CreateParams(Params);
|
|
if Application.MainForm <> nil then
|
|
Params.WndParent := Application.MainForm.Handle;
|
|
end;
|
|
|
|
function TDestTableDlg.GetTableType: TTableType;
|
|
begin
|
|
Result := TTableType(TypeBtn.ItemIndex + 1);
|
|
end;
|
|
|
|
procedure TDestTableDlg.SetTableType(Value: TTableType);
|
|
begin
|
|
TypeBtn.ItemIndex := Integer(Value) - 1;
|
|
end;
|
|
|
|
function TDestTableDlg.GetTableName: string;
|
|
begin
|
|
Result := TabnameEdit.FileName;
|
|
end;
|
|
|
|
procedure TDestTableDlg.SetTableName(const Value: string);
|
|
begin
|
|
if Value <> TabnameEdit.FileName then begin
|
|
TabnameEdit.FileName := NormalDir(TabnameEdit.InitialDir) +
|
|
ChangeFileExt(Value, DefExtension(TableType));
|
|
end;
|
|
end;
|
|
|
|
procedure TDestTableDlg.TabnameEditAfterDialog(Sender: TObject;
|
|
var Name: string; var Action: Boolean);
|
|
begin
|
|
if (CompareText(ExtractFileExt(Name), '.DB') = 0) then
|
|
TypeBtn.ItemIndex := 0
|
|
else if (CompareText(ExtractFileExt(Name), '.DBF') = 0) then
|
|
TypeBtn.ItemIndex := 1
|
|
else if (CompareText(ExtractFileExt(Name), '.TXT') = 0) then
|
|
TypeBtn.ItemIndex := 2;
|
|
end;
|
|
|
|
procedure TDestTableDlg.TabnameEditChange(Sender: TObject);
|
|
begin
|
|
OkBtn.Enabled := TabnameEdit.FileName <> '';
|
|
end;
|
|
|
|
procedure TDestTableDlg.TypeBtnClick(Sender: TObject);
|
|
begin
|
|
if TabnameEdit.FileName <> '' then begin
|
|
TabnameEdit.FileName := ChangeFileExt(TabnameEdit.FileName,
|
|
DefExtension(TableType));
|
|
end;
|
|
TabnameEdit.FilterIndex := Integer(TableType);
|
|
end;
|
|
|
|
procedure TDestTableDlg.OkBtnClick(Sender: TObject);
|
|
begin
|
|
if (not FileExists(TabnameEdit.FileName)) or
|
|
(MessageDlg(Format('File %s already exists. Do you want to replace it?',
|
|
[TabnameEdit.FileName]), mtWarning, [mbYes, mbNo], 0) = mrYes)
|
|
then
|
|
ModalResult := mrOk;
|
|
end;
|
|
|
|
procedure TDestTableDlg.RecordCountBtnClick(Sender: TObject);
|
|
begin
|
|
RecordCntEdit.Enabled := FirstRecsBtn.Checked;
|
|
if RecordCntEdit.Enabled then begin
|
|
RecordCntEdit.Color := clWindow;
|
|
RecordCntEdit.ParentFont := True;
|
|
if TabnameEdit.Text <> '' then ActiveControl := RecordCntEdit
|
|
else ActiveControl := TabnameEdit;
|
|
end
|
|
else begin
|
|
RecordCntEdit.ParentColor := True;
|
|
RecordCntEdit.Font.Color := RecordCntEdit.Color;
|
|
end;
|
|
end;
|
|
|
|
end.
|