main.pas
来自「MysqlFront的源码」· PAS 代码 · 共 1,179 行 · 第 1/3 页
PAS
1,179 行
CSVSeparator := ',';
CSVEncloser := '';
CSVTerminator := '\r\n';
ConvertHTMLEntities := true;
logsqlnum := 300;
if Valueexists('CSVSeparator') then
CSVSeparator := ReadString('CSVSeparator');
if Valueexists('CSVEncloser') then
CSVEncloser := ReadString('CSVEncloser');
if Valueexists('CSVTerminator') then
CSVTerminator := ReadString('CSVTerminator');
if Valueexists('ConvertHTMLEntities') then
ConvertHTMLEntities := ReadBool('ConvertHTMLEntities');
if valueExists('logsqlnum') then
logsqlnum := ReadInteger('logsqlnum');
if valueExists('NativeFieldTypes') then
NativeFieldTypes := ReadBool('NativeFieldTypes')
else
NativeFieldTypes := false;
// Position of Toolbars
if valueExists('ToolBar2Left') then
ToolBar2.Left := ReadInteger('ToolBar2Left');
if valueExists('ToolBarDataLeft') then
ToolBarData.Left := ReadInteger('ToolBarDataLeft');
if valueExists('ToolBar2Top') then
ToolBar2.Top := ReadInteger('ToolBar2Top');
if valueExists('ToolBarDataTop') then
ToolBarData.Top := ReadInteger('ToolBarDataTop');
// SQLFiles-History
i := 1;
PopUpMenu6.Items.Clear;
while ValueExists('SQLFile'+inttostr(i)) do begin
mi := Tmenuitem.Create(self);
mi.Caption := inttostr(PopUpMenu6.Items.count+1) + ' ' + ReadString('SQLFile'+inttostr(i));
mi.OnClick := LoadSQLFile;
PopUpMenu6.Items.Add(mi);
inc(i);
end;
// Limit-options
if valueExists('DataLimit') then
CheckBoxLimit.Checked := ReadBool('DataLimit');
if valueExists('DataLimitStart') then
UpDownLimitStart.Position := ReadInteger('DataLimitStart');
if valueExists('DataLimitEnd') then
UpDownLimitEnd.Position := ReadInteger('DataLimitEnd');
// Other values
DataAlwaysEditMode := true;
if valueExists('DataAlwaysEditMode') then
DataAlwaysEditMode := ReadBool('DataAlwaysEditMode');
if valueExists('DataNullBackground') then
DataNullBackground := StringToColor(ReadString('DataNullBackground'))
else
DataNullBackground := clAqua;
end;
CloseKey;
end;
// read function-list from function.txt:
if fileexists(ExtractFilePath(paramstr(0)) + 'function.txt') then
try
AssignFile(f, ExtractFilePath(paramstr(0)) + 'function.txt');
Reset(f);
i := 1;
while not eof(f) do
begin
functionname := '';
Readln(f, functionname);
pipeposition := pos('|', functionname);
if pipeposition > 0 then // read hint
begin
functionhint := copy(functionname, 0, pipeposition-1) + ' - ' + copy(functionname, pipeposition+1, length(functionname)-1);
// functionnametoinsert := copy(functionname, 0, pos('(', functionname)-1);
functionname := copy(functionname, 0, pos('(', functionname)-1)
end else
functionhint := '';
if (functionname[1] <> '#') and (length(trim(functionname)) > 0) then
begin
mi := TMenuItem.Create(self);
mi.Caption := trim(functionname);
mi.Hint := trim(functionhint);
mi.OnClick := insertFunction;
if functionname[1] <> ' ' then // build submenu
begin
SQLfunctions.Items.add(mi);
inc(i);
end else
begin
SQLfunctions.Items[i+11].OnClick := nil; // deactivate parent Menuitem
SQLfunctions.Items[i+11].Add(mi);
end;
end;
end;
finally
CloseFile(f);
end;
timer1.Enabled := true;
debug('-------> Programstart!');
end;
procedure TMainform.LoadSQLFile(sender: TObject);
begin
TMDIChild(Mainform.ActiveMDIChild).LoadSQLClick(sender);
end;
procedure TMainForm.insertFunction(sender: TObject);
var
t1,t2,f : String;
oldSelStart : Integer;
sm : TSynMemo;
begin
// insert function from function.txt
if TMDIChild(Mainform.ActiveMDIChild).SynMemo3.Focused then
sm := TMDIChild(Mainform.ActiveMDIChild).SynMemo3
else
sm := TMDIChild(Mainform.ActiveMDIChild).SynMemo1;
f := TMenuItem(Sender).Hint;
f := stringreplace(f, '&', '', [rfReplaceAll]);
f := copy(f, 0, pos(')', f));
oldSelStart := sm.SelStart;
t1 := copy(sm.Text, 0, sm.SelStart-1);
t2 := copy(sm.Text, sm.SelStart, Length(sm.Text) - sm.SelStart);
sm.Text := t1 + f + t2;
sm.SelStart := oldSelStart + length(f);
if not TMDIChild(Mainform.ActiveMDIChild).SynMemo3.Focused then
TMDIChild(Mainform.ActiveMDIChild).SynMemo1Change(self);
end;
procedure TMainForm.ButtonRefreshClick(Sender: TObject);
begin
// Refresh
with TMDIChild(Application.Mainform.ActiveMDIChild) do
begin
if PageControl1.ActivePage = SheetHost then
ShowVariablesAndProcesses(self)
else if PageControl1.ActivePage = SheetDatabase then
ShowDBProperties(self)
else if PageControl1.ActivePage = SheetTable then
ShowTableProperties(self)
else if PageControl1.ActivePage = SheetData then
viewdata(self)
else
ReadDatabasesAndTables(self);
end;
end;
procedure TMainForm.ButtonExportClick(Sender: TObject);
begin
// Export SQL
exportsqlform.showmodal;
end;
procedure TMainForm.ButtonCreateDatabaseClick(Sender: TObject);
begin
// create database
TMDIChild(Application.Mainform.ActiveMDIChild).CreateDatabase(self);
end;
procedure TMainForm.ButtonCreateTableClick(Sender: TObject);
begin
// create table
TMDIChild(Application.Mainform.ActiveMDIChild).CreateTable(self);
end;
procedure TMainForm.ButtonDropDatabaseClick(Sender: TObject);
begin
// drop db
with TMDIChild(Application.Mainform.ActiveMDIChild) do
if ActualDatabase <> '' then
DBLoeschen(self);
end;
procedure TMainForm.ButtonDropTableClick(Sender: TObject);
begin
// delete table
with TMDIChild(Application.Mainform.ActiveMDIChild) do
if ActualTable <> '' then
TabelleLoeschen(self);
end;
procedure TMainForm.ButtonAdvancedPropertiesClick(Sender: TObject);
begin
// Show advanced table-properties
tbl_properties_form.showmodal;
end;
procedure TMainForm.ResetWindowOptions1Click(Sender: TObject);
var
reg : TRegistry;
begin
// reset all options for window-size, height ...
if ActiveMDIChild <> nil then
begin
MessageDlg('Close all open windows before you do this.', mtError, [mbok], 0);
exit;
end;
reg := TRegistry.Create;
with reg do
begin
Access := KEY_ALL_ACCESS;
if OpenKey(regpath, false) then
begin
DeleteValue('childwinstate');
DeleteValue('childwinleft');
DeleteValue('childwintop');
DeleteValue('childwinwidth');
DeleteValue('childwinheight');
DeleteValue('querymemoheight');
DeleteValue('dbtreewidth');
DeleteValue('sqloutheight');
CloseKey;
MessageDlg('All Window-Settings were reset to default values.', mtInformation, [mbok], 0);
end;
Free;
end;
end;
procedure TMainForm.ButtonImportTextfileClick(Sender: TObject);
begin
// Import Textfile
loaddataform.showmodal;
end;
procedure TMainForm.Timer1Timer(Sender: TObject);
begin
// Startup!
timer1.Enabled := false;
ShowConnections(self);
end;
procedure TMainForm.MenuPreferencesClick(Sender: TObject);
begin
// Preferences
optionsform.showmodal;
end;
procedure TMainForm.Readme1Click(Sender: TObject);
begin
// show readme.txt
shellexecute(0, 'open', pchar('readme.txt'), Nil, pchar(ExtractFilePath(paramstr(0))), 5);
end;
procedure TMainForm.FormResize(Sender: TObject);
begin
StatusBar.Panels[0].Width := width - StatusBar.Panels[1].Width - StatusBar.Panels[2].Width;
end;
procedure TMainForm.UserManagerExecute(Sender: TObject);
begin
// Usermanager
usermanagerform.showmodal;
end;
procedure TMainForm.ShowAboutBoxExecute(Sender: TObject);
begin
// Info-Box
AboutBox.showmodal;
end;
procedure TMainForm.DiagnosticsExecute(Sender: TObject);
begin
// optimize / repair... tables
optimize.showmodal;
end;
procedure TMainForm.ODBCImportExecute(Sender: TObject);
begin
// ODBC
ODBCImportForm.ShowModal;
end;
procedure TMainForm.Copy2CSVExecute(Sender: TObject);
begin
// Copy data in actual dataset as CSV
end;
procedure TMainForm.Save2CSVExecute(Sender: TObject);
begin
// Save data in actual dataset as CSV
with TMDIChild(Application.Mainform.ActiveMDIChild) do
with TSaveDialog.Create(self) do begin
// Separator := CSVSeparator;
// Encloser := CSVEncloser;
// Terminator := CSVTerminator;
Filter := 'CSV-Files (*.csv)|*.csv|Textfiles (*.txt)|*.txt|All files (*.*)|*.*';
DefaultExt := 'csv';
if PageControl1.ActivePage = SheetData then
FileName := ActualTable
else
FileName := sstr(ZQuery1.Sql[0], 20);
Options := [ofOverwritePrompt,ofEnableSizing];
if Execute and (FileName <> '') then begin
end;
end;
end;
procedure TMainForm.CopyHTMLtableExecute(Sender: TObject);
begin
// Copy data in actual dataset as HTML
with TMDIChild(Application.Mainform.ActiveMDIChild) do begin
end;
end;
procedure TMainForm.SaveHTMLTableExecute(Sender: TObject);
begin
// Save data in actual dataset as HTML
with TMDIChild(Application.Mainform.ActiveMDIChild) do begin
with TSaveDialog.Create(self) do begin
Filter := 'Hypertext-Files (*.html, *.htm)|*.html;*.htm|All files (*.*)|*.*';
DefaultExt := 'html';
if PageControl1.ActivePage = SheetData then
FileName := ActualTable
else
FileName := sstr(ZQuery1.Sql[0], 20);
Options := [ofOverwritePrompt,ofEnableSizing];
if Execute and (FileName <> '') then
begin
end;
end;
end;
end;
procedure TMainForm.PrintListExecute(Sender: TObject);
var
page : TTabSheet;
begin
// print
page := TMDIChild(Mainform.ActiveMDIChild).PageControl1.ActivePage;
if page.Name = 'SheetData' then
begin
// TODO: Print data
end
else if (page.Name = 'SheetQuery') then
begin
// TODO: Print data
end
else
printlistform.showmodal;
end;
procedure TMainForm.CopyTableExecute(Sender: TObject);
begin
// copy table
CopyTableForm.ShowModal;
end;
procedure TMainForm.StatusBarDrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
// clear panel
StatusBar.Canvas.Pen.Color := StatusBar.Canvas.Brush.Color;
StatusBar.Canvas.Rectangle(rect);
StatusBar.Canvas.Pen.Color := clWindowText;
// draw icon and message
ImageList1.Draw(StatusBar.Canvas, Rect.Left, Rect.Top, StatusIconIndex);
StatusBar.Canvas.TextOut(Rect.left + 17, Rect.top+1, StatusText);
end;
procedure TMainForm.ButtonOKClick(Sender: TObject);
begin
// Set Filter
TMDIChild(Mainform.ActiveMDIChild).DBTree.SetFocus;
TMDIChild(Mainform.ActiveMDIChild).viewdata(self);
end;
procedure TMainForm.CheckBoxLimitClick(Sender: TObject);
begin
// Check/Uncheck popupmenu-item
if TMDIChild(Mainform.ActiveMDIChild) <> nil then
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?