📄 mainfrm.~pas
字号:
unit MainFrm;
interface
uses
Windows, SysUtils, Classes, Graphics, Forms, Controls, Menus,
StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, ComCtrls, StdActns,
ActnList, ImgList, ToolWin, TinyDB, Db, ShellApi, BaseFrm;
const
STDBVersion = '2.9';
type
TOpenTableMode = (otGrid, otCard);
TMainForm = class(TBaseForm)
MainMenu1: TMainMenu;
FileMenu: TMenuItem;
FileNewItem: TMenuItem;
FileOpenItem: TMenuItem;
FileCloseItem: TMenuItem;
WindowMenu: TMenuItem;
HelpMenu: TMenuItem;
FileN1Item: TMenuItem;
FileExitItem: TMenuItem;
WindowCascadeItem: TMenuItem;
WindowTileItem: TMenuItem;
WindowArrangeItem: TMenuItem;
HelpAboutItem: TMenuItem;
OpenDialog: TOpenDialog;
ToolsMenu: TMenuItem;
WindowMinimizeItem: TMenuItem;
StatusBar: TStatusBar;
ActionList1: TActionList;
FileNewDBAction: TAction;
FileExitAction: TAction;
FileOpenDBAction: TAction;
WindowCascadeAction: TWindowCascade;
WindowTileHorizontalAction: TWindowTileHorizontal;
WindowArrangeAllAction: TWindowArrange;
WindowMinimizeAllAction: TWindowMinimizeAll;
HelpAboutAction: TAction;
WindowTileVerticalAction: TWindowTileVertical;
WindowTileItem2: TMenuItem;
ImageList: TImageList;
HelpN1: TMenuItem;
HelpContentAction: TAction;
HelpContentItem: TMenuItem;
TinyTable: TTinyTable;
TinyDatabase: TTinyDatabase;
CoolBar: TCoolBar;
ToolBar: TToolBar;
NewToolButton: TToolButton;
OpenToolButton: TToolButton;
ToolButton3: TToolButton;
CascToolButton: TToolButton;
HTileToolButton: TToolButton;
VTileToolButton: TToolButton;
TopPanel: TPanel;
ToolbarPanel: TPanel;
LeftDockPanel: TPanel;
FileCloseDBAction: TAction;
ToolCompactItem: TMenuItem;
ToolRepairItem: TMenuItem;
ToolN1: TMenuItem;
ToolChgPwdItem: TMenuItem;
ToolCompactAction: TAction;
ToolRepairAction: TAction;
ToolChgPwdAction: TAction;
ViewToolBarAction: TAction;
ViewStatusBarAction: TAction;
ViewMenu: TMenuItem;
ViewToolBarItem: TMenuItem;
ViewStatusBarItem: TMenuItem;
ViewRefreshAction: TAction;
ViewN1: TMenuItem;
ViewRefreshItem: TMenuItem;
ToolOptionAction: TAction;
ToolN3: TMenuItem;
O1: TMenuItem;
ToolButton1: TToolButton;
HelpToolButton: TToolButton;
HelpAdviseAction: TAction;
HelpBugReportAction: TAction;
HelpHomepageAction: TAction;
HelpN2: TMenuItem;
HelpFeedbackItem: TMenuItem;
HelpHomepageItem: TMenuItem;
HelpAdviseItem: TMenuItem;
HelpBugReportItem: TMenuItem;
DatabaseMenu: TMenuItem;
DBNewTableAction: TAction;
DBDeleteTableAction: TAction;
DBRenameTableAction: TAction;
DBEmptyTableAction: TAction;
DBNewTableItem: TMenuItem;
DBDeleteTableItem: TMenuItem;
DBEmptyTableItem: TMenuItem;
DBRenameTableItem: TMenuItem;
DBN1: TMenuItem;
DBDeleteIndexAction: TAction;
DBDeleteIndexItem: TMenuItem;
DBN2: TMenuItem;
DBRenameFieldAction: TAction;
DBCommentsAction: TAction;
DBPropertyAction: TAction;
DBRenameFieldItem: TMenuItem;
DBN3: TMenuItem;
DBCommentsItem: TMenuItem;
DBPropertyItem: TMenuItem;
DBOpenTableAction: TAction;
O2: TMenuItem;
ViewOpenTableGridAction: TAction;
ViewOpenTableCardAction: TAction;
ViewN2: TMenuItem;
ViewOpenTableModeItem: TMenuItem;
ViewOpenTableGridItem: TMenuItem;
ViewOpenTableCardItem: TMenuItem;
NewTableToolButton: TToolButton;
ToolButton4: TToolButton;
RefreshToolButton: TToolButton;
CompactToolButton: TToolButton;
RepairToolButton: TToolButton;
ChgPwdToolButton: TToolButton;
ToolButton12: TToolButton;
FileN2Item: TMenuItem;
FileMRU1Item: TMenuItem;
FileMRU2Item: TMenuItem;
FileMRU3Item: TMenuItem;
FileMRU4Item: TMenuItem;
ToolBar1: TToolBar;
TableComboBox: TComboBox;
DBRenameIndexAction: TAction;
DBRenameIndexItem: TMenuItem;
OpenAsGridToolButton: TToolButton;
OpenAsCardToolButton: TToolButton;
DBSearchAction: TAction;
DBN4: TMenuItem;
DBSearchItem: TMenuItem;
DBFilterAction: TAction;
DBFilterItem: TMenuItem;
ProgressPanel: TPanel;
ProgressBar: TProgressBar;
OptionsToolButton: TToolButton;
ToolButton10: TToolButton;
ToolChgEncAction: TAction;
ToolChgEncItem: TMenuItem;
ViewN3Item: TMenuItem;
ViewLanguageItem: TMenuItem;
DBDesignTableAction: TAction;
DBDesignTableItem: TMenuItem;
FileExportTextAction: TAction;
FileN3Item: TMenuItem;
FileExportItem: TMenuItem;
FileExportTextItem: TMenuItem;
ToolButton2: TToolButton;
SplitterPanel: TPanel;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FileNewDBActionExecute(Sender: TObject);
procedure FileOpenDBActionExecute(Sender: TObject);
procedure FileCloseDBActionExecute(Sender: TObject);
procedure FileExitActionExecute(Sender: TObject);
procedure HelpContentActionExecute(Sender: TObject);
procedure HelpAboutActionExecute(Sender: TObject);
procedure LeftDockPanelDockDrop(Sender: TObject;
Source: TDragDockObject; X, Y: Integer);
procedure LeftDockPanelDockOver(Sender: TObject;
Source: TDragDockObject; X, Y: Integer; State: TDragState;
var Accept: Boolean);
procedure LeftDockPanelUnDock(Sender: TObject; Client: TControl;
NewTarget: TWinControl; var Allow: Boolean);
procedure LeftDockPanelGetSiteInfo(Sender: TObject;
DockClient: TControl; var InfluenceRect: TRect; MousePos: TPoint;
var CanDock: Boolean);
procedure ToolCompactActionExecute(Sender: TObject);
procedure ToolRepairActionExecute(Sender: TObject);
procedure ToolChgPwdActionExecute(Sender: TObject);
procedure ViewToolBarActionExecute(Sender: TObject);
procedure ViewStatusBarActionExecute(Sender: TObject);
procedure ViewRefreshActionExecute(Sender: TObject);
procedure ToolOptionActionExecute(Sender: TObject);
procedure HelpAdviseActionExecute(Sender: TObject);
procedure HelpBugReportActionExecute(Sender: TObject);
procedure HelpHomepageActionExecute(Sender: TObject);
procedure DBNewTableActionExecute(Sender: TObject);
procedure DBDeleteTableActionExecute(Sender: TObject);
procedure DBRenameTableActionExecute(Sender: TObject);
procedure DBEmptyTableActionExecute(Sender: TObject);
procedure DBDeleteIndexActionExecute(Sender: TObject);
procedure DBRenameFieldActionExecute(Sender: TObject);
procedure DBCommentsActionExecute(Sender: TObject);
procedure DBPropertyActionExecute(Sender: TObject);
procedure DBOpenTableActionExecute(Sender: TObject);
procedure ViewOpenTableGridActionExecute(Sender: TObject);
procedure ViewOpenTableCardActionExecute(Sender: TObject);
procedure FileMRU1ItemClick(Sender: TObject);
procedure StatusBarResize(Sender: TObject);
procedure DBRenameIndexActionExecute(Sender: TObject);
procedure DatabaseMenuClick(Sender: TObject);
procedure TableComboBoxClick(Sender: TObject);
procedure TableComboBoxKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DBSearchActionExecute(Sender: TObject);
procedure DBFilterActionExecute(Sender: TObject);
procedure TinyDatabaseOperationProgress(Sender: TObject; Percent: Integer);
procedure FormActivate(Sender: TObject);
procedure ToolChgEncActionExecute(Sender: TObject);
procedure DBDesignTableActionExecute(Sender: TObject);
procedure FileExportTextActionExecute(Sender: TObject);
procedure SplitterPanelMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure SplitterPanelMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure SplitterPanelMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
private
{ Private declarations }
FFieldList: TStrings;
FOpenTableMode: TOpenTableMode;
FPassword: string;
FSptMouseDown: Boolean;
FSptMouseX: Integer;
procedure InitFieldList;
procedure InitMRUMenuItem;
procedure InitLanguageMenu;
procedure AdjustCaption(DatabaseName: string);
procedure SetOpenTableMode(Mode: TOpenTableMode);
procedure DoParam;
procedure DoFileDropMessage(var Msg: tagMSG; var Handled: Boolean);
procedure CheckLanguageMenu(Index: Integer);
procedure LanguageItemClick(Sender: TObject);
procedure ApplicationMessage(var Msg: TMsg; var Handled: Boolean);
public
{ Public declarations }
procedure TransLanguage; override;
procedure ShowDockPanel(APanel: TPanel; MakeVisible: Boolean; Client: TControl);
function GetFieldStrByType(FieldType: TFieldType): string;
function GetFieldCommentsByType(FieldType: TFieldType): string;
procedure AdjustUI(Opened: Boolean);
procedure InitTableComboxBox;
procedure OpenDatabase(DatabaseName: string);
procedure BeginProgress;
procedure EndProgress;
procedure DoProgress(Percent: Integer);
property FieldList: TStrings read FFieldList;
property OpenTableMode: TOpenTableMode read FOpenTableMode write SetOpenTableMode;
property Password: string read FPassword write FPassword;
end;
var
MainForm: TMainForm;
implementation
{$R *.DFM}
uses
Misc, MRUMgr, DBInfoFrm, AboutFrm, OptionFrm, NewDBFrm,
InputFrm, TableListFrm, DBCommentsFrm, DBPropertyFrm,
ChgPwdFrm, ChgEncFrm, SearchFrm, FilterFrm, DBTableFrm,
NewTableFrm, LangMgr;
procedure TMainForm.TransLanguage;
begin
inherited;
InitFieldList;
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
FFieldList := TStringList.Create;
MRUManager := TMRUMgr.Create(GetIniFileName);
InitMRUMenuItem;
LoadOptions;
BoundsRect := Options.FormBounds;
AdjustUI(False);
SetOpenTableMode(Options.OpenTableMode);
DragAcceptFiles(Handle, True);
Application.OnMessage := ApplicationMessage;
//Init language
AppLangMgr.InitPath(ExtractFilePath(Application.ExeName));
InitLanguageMenu;
if Options.LanguageName = '' then
AppLangMgr.InitLang(AppLangMgr.DefaultLangIndex)
else
AppLangMgr.InitLang(AppLangMgr.IndexOfLangName(Options.LanguageName));
CheckLanguageMenu(AppLangMgr.CurrentLangIndex);
end;
procedure TMainForm.FormActivate(Sender: TObject);
begin
OnActivate := nil;
DoParam;
end;
procedure TMainForm.FormDestroy(Sender: TObject);
begin
FFieldList.Free;
MRUManager.Free;
if Options.RememberSize then
begin
if WindowState = wsMaximized then
Options.FormBounds := GetWorkAreaRect
else
Options.FormBounds := BoundsRect;
end;
SaveOptions;
end;
procedure TMainForm.InitFieldList;
begin
FFieldList.Clear;
FFieldList.AddObject('AutoInc=' + AppLangMgr.Trans('ftmAutoInc'), TObject(ftAutoInc));
FFieldList.AddObject('Smallint=' + AppLangMgr.Trans('ftmSmallint'), TObject(ftSmallint));
FFieldList.AddObject('Integer=' + AppLangMgr.Trans('ftmInteger'), TObject(ftInteger));
FFieldList.AddObject('Word=' + AppLangMgr.Trans('ftmWord'), TObject(ftWord));
FFieldList.AddObject('Largeint=' + AppLangMgr.Trans('ftmLargeint'), TObject(ftLargeint));
FFieldList.AddObject('Boolean=' + AppLangMgr.Trans('ftmBoolean'), TObject(ftBoolean));
FFieldList.AddObject('Float=' + AppLangMgr.Trans('ftmFloat'), TObject(ftFloat));
FFieldList.AddObject('Currency=' + AppLangMgr.Trans('ftmCurrency'), TObject(ftCurrency));
FFieldList.AddObject('Date=' + AppLangMgr.Trans('ftmDate'), TObject(ftDate));
FFieldList.AddObject('Time=' + AppLangMgr.Trans('ftmTime'), TObject(ftTime));
FFieldList.AddObject('DateTime=' + AppLangMgr.Trans('ftmDateTime'), TObject(ftDateTime));
FFieldList.AddObject('String=' + AppLangMgr.Trans('ftmString'), TObject(ftString));
FFieldList.AddObject('WideString=' + AppLangMgr.Trans('ftmWideString'), TObject(ftWideString));
FFieldList.AddObject('FixedChar=' + AppLangMgr.Trans('ftmFixedChar'), TObject(ftFixedChar));
FFieldList.AddObject('Memo=' + AppLangMgr.Trans('ftmMemo'), TObject(ftMemo));
FFieldList.AddObject('Graphic=' + AppLangMgr.Trans('ftmGraphic'), TObject(ftGraphic));
FFieldList.AddObject('Blob=' + AppLangMgr.Trans('ftmBlob'), TObject(ftBlob));
end;
procedure TMainForm.InitMRUMenuItem;
var
I: Integer;
MenuItem: TMenuItem;
begin
for I := 1 to MRUManager.Items.Count do
begin
MenuItem := FindComponent('FileMRU' + IntToStr(I) + 'Item') as TMenuItem;
MenuItem.Caption := '&' + IntToStr(MenuItem.Tag) + ' ' + MRUManager.GetDisplayString(I - 1);
MenuItem.Visible := True;
end;
FileN2Item.Visible := MRUManager.Items.Count > 0;
end;
procedure TMainForm.InitTableComboxBox;
var
I: Integer;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -