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

📄 dbtablefrm.pas

📁 delphi本地数据库引擎
💻 PAS
字号:
unit DBTableFrm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics,
  Controls, Forms, Dialogs, Db, TinyDB, DBCtrls,
  ComCtrls, StdCtrls, ExtCtrls, ToolWin, BaseFrm;

type
  TDBTableFormData = record
    TinyDatabase: TTinyDatabase;
    TableName: string;
  end;

  TDBTableForm = class(TBaseForm)
    ToolBar: TToolBar;
    IndexPanel: TPanel;
    IndexLabel: TLabel;
    IndexComboBox: TComboBox;
    ToolButton1: TToolButton;
    DBNavigator: TDBNavigator;
    DataSource: TDataSource;
    TinyTable: TTinyTable;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormActivate(Sender: TObject);
    procedure IndexComboBoxClick(Sender: TObject);
  private
    { Private declarations }
    FValue: TDBTableFormData;
    function GetTableName: string;
    procedure InitIndexComboBox;
  public
    { Public declarations }
    procedure TransLanguage; override;
    procedure SetData(Value: TDBTableFormData); virtual;
    property TableName: string read GetTableName;
  end;

var
  DBTableForm: TDBTableForm;

implementation

uses MainFrm, DBInfoFrm, LangMgr;

{$R *.DFM}

procedure TDBTableForm.TransLanguage;
begin
  inherited;
  DBNavigator.Hints[0] := AppLangMgr.Trans('First record');
  DBNavigator.Hints[1] := AppLangMgr.Trans('Prior record');
  DBNavigator.Hints[2] := AppLangMgr.Trans('Next record');
  DBNavigator.Hints[3] := AppLangMgr.Trans('Last record');
  DBNavigator.Hints[4] := AppLangMgr.Trans('Insert record');
  DBNavigator.Hints[5] := AppLangMgr.Trans('Delete record');
  DBNavigator.Hints[6] := AppLangMgr.Trans('Edit record');
  DBNavigator.Hints[7] := AppLangMgr.Trans('Post edit');
  DBNavigator.Hints[8] := AppLangMgr.Trans('Cancel edit');
  DBNavigator.Hints[9] := AppLangMgr.Trans('Refresh data');
  IndexComboBox.BoundsRect := Rect(IndexLabel.BoundsRect.Right + 4,
    IndexComboBox.Top, IndexComboBox.BoundsRect.Right, IndexComboBox.BoundsRect.Bottom);
  Caption := AppLangMgr.Trans('Table') + ' [' + FValue.TableName + ']';
end;

procedure TDBTableForm.SetData(Value: TDBTableFormData);
begin
  FValue := Value;
  Caption := AppLangMgr.Trans('Table') + ' [' + Value.TableName + ']';
  TinyTable.DatabaseName := Value.TinyDatabase.DatabaseName;
  TinyTable.TableName := Value.TableName;;
  TinyTable.Open;
  InitIndexComboBox;
  MainForm.TableComboBox.Text := Value.TableName;
end;

function TDBTableForm.GetTableName: string;
begin
  Result := FValue.TableName;
end;

procedure TDBTableForm.InitIndexComboBox;
var
  I: Integer;
begin
  IndexComboBox.Items.Clear;
  IndexComboBox.Items.Add('(' + AppLangMgr.Trans('None') + ')');
  for I := 0 to TinyTable.IndexDefs.Count - 1 do
    IndexComboBox.Items.Add(TinyTable.IndexDefs[I].Name);
  IndexComboBox.ItemIndex := 0;
end;

procedure TDBTableForm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  if MainForm.MDIChildCount = 1 then
    MainForm.TableComboBox.ItemIndex := -1;
  TinyTable.Close;
  Action := caFree;
end;

procedure TDBTableForm.FormActivate(Sender: TObject);
begin
  if DBInfoForm <> nil then DBInfoForm.LocateNodeOfTableName(TableName);
  MainForm.TableComboBox.Text := TableName;
end;

procedure TDBTableForm.IndexComboBoxClick(Sender: TObject);
begin
  if IndexComboBox.ItemIndex = 0 then
    TinyTable.IndexName := ''
  else
    TinyTable.IndexName := IndexComboBox.Text;
end;

end.

⌨️ 快捷键说明

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