childwin.pas
来自「MysqlFront的源码」· PAS 代码 · 共 2,085 行 · 第 1/5 页
PAS
2,085 行
end;
end else
if MessageDlg('Drop field ' + FeldListe.Selected.Caption + ' ?', mtConfirmation, [mbok,mbcancel], 0) = mrok then
begin
ExecQuery( 'ALTER TABLE '+mainform.mask(ActualTable)+' DROP '+mainform.mask(FeldListe.Selected.Caption) );
ShowTableProperties(self);
end;
end;
procedure TMDIChild.SynMemo1Change(Sender: TObject);
var somechars : Boolean;
begin
PanelCharsInQueryWindow.Caption :=
Format('%g', [length(SynMemo1.Text) + 0.0]) + ' Characters';
somechars := length(SynMemo1.Text) > 0;
Mainform.ExecuteQuery.Enabled := somechars;
Mainform.ExecuteSelection.Enabled := length(SynMemo1.SelText) > 0;
Mainform.ExecuteLine.Enabled := SynMemo1.LineText <> '';
ButtonSaveSQL.Enabled := somechars;
end;
procedure TMDIChild.CreateTable(Sender: TObject);
begin
CreateTableForm.showmodal;
end;
procedure TMDIChild.Timer1Timer(Sender: TObject);
var
tage, stunden, minuten, sekunden : Integer;
begin
// Host-Uptime
tage:= uptime div (60*60*24);
sekunden := uptime mod (60*60*24);
stunden := sekunden div (60*60);
sekunden := sekunden mod (60*60);
minuten := sekunden div 60;
sekunden := sekunden mod 60;
inc(uptime);
Panel4.Caption := format(strHostRunning + '%d days, %.2d:%.2d:%.2d', [tage,stunden,minuten,sekunden])
end;
procedure TMDIChild.FormActivate(Sender: TObject);
begin
if ZConn.Connected then
begin
Application.Title := Description + ' - ' + main.appname;
with MainForm do
begin
ButtonRefresh.Enabled := true;
ButtonReload.Enabled := true;
ButtonExport.Enabled := true;
ButtonImportTextfile.Enabled := true;
ButtonCreateTable.Enabled := true;
ButtonCreateDatabase.Enabled := true;
ButtonDropDatabase.Enabled := true;
ButtonDropTable.Enabled := true;
MenuRefresh.Enabled := true;
MenuExport.Enabled := true;
MenuImportTextFile.Enabled := true;
MenuCreateTable.Enabled := true;
MenuCreateDatabase.Enabled := true;
MenuDropDatabase.Enabled := true;
MenuDropTable.Enabled := true;
MenuFlushHosts.Enabled := true;
MenuFlushLogs.Enabled := true;
FlushUserPrivileges1.Enabled := true;
MenuFlushTables.Enabled := true;
MenuFlushTableswithreadlock.Enabled := true;
MenuFlushStatus.Enabled := true;
UserManager.Enabled := true;
Diagnostics.Enabled := true;
InsertFiles.Enabled := true;
PrintList.Enabled := true;
ODBCImport.Enabled := true;
if (PageControl1.ActivePage = SheetData) or
(PageControl1.ActivePage = SheetQuery) then begin
Copy2CSV.Enabled := true;
CopyHTMLtable.Enabled := true;
Copy2XML.Enabled := true;
ExportData.Enabled := true;
end;
mainform.ToolBarData.visible := (PageControl1.ActivePage = SheetData);
mainform.DBNavigator1.DataSource := DataSource1;
end;
end;
timer4.OnTimer(self);
end;
procedure TMDIChild.FormDeactivate(Sender: TObject);
begin
Application.Title := main.appname;
with MainForm do
begin
ButtonRefresh.Enabled := false;
ButtonReload.Enabled := false;
ButtonExport.Enabled := false;
ButtonImportTextfile.Enabled := false;
ButtonCreateTable.Enabled := false;
ButtonCreateDatabase.Enabled := false;
ButtonDropDatabase.Enabled := false;
ButtonDropTable.Enabled := false;
MenuRefresh.Enabled := false;
MenuExport.Enabled := false;
MenuImportTextFile.Enabled := false;
MenuCreateTable.Enabled := false;
MenuCreateDatabase.Enabled := false;
MenuDropDatabase.Enabled := false;
MenuDropTable.Enabled := false;
MenuFlushHosts.Enabled := false;
MenuFlushLogs.Enabled := false;
FlushUserPrivileges1.Enabled := false;
MenuFlushTables.Enabled := false;
MenuFlushTableswithreadlock.Enabled := false;
MenuFlushStatus.Enabled := false;
UserManager.Enabled := false;
Diagnostics.Enabled := false;
InsertFiles.Enabled := false;
PrintList.Enabled := false;
ODBCImport.Enabled := false;
Copy2CSV.Enabled := false;
CopyHTMLtable.Enabled := false;
Copy2XML.Enabled := false;
ExportData.Enabled := false;
end;
showstatus('', 1); // empty connected_time
end;
// Primary key abfragen - delete from .. where
procedure TMDIChild.FormShow(Sender: TObject);
begin
// initialize some values and components:
timer2.Enabled := true;
timer3.Enabled := true;
timer4.Enabled := true;
// ComboBoxOperator.ItemIndex := 0;
{ TODO : nur bei autoconnected file laden }
if (paramstr(1) <> '') and Main.loadsqlfile then try
// load sql-file from paramstr
SynMemo1.Lines.LoadFromFile(paramstr(1));
Main.loadsqlfile := false;
except
MessageDLG('File could not be opened: ' + paramstr(1), mtError, [mbOK], 0);
end;
end;
{ Edit field }
procedure TMDIChild.UpdateField(Sender: TObject);
begin
FieldEditForm.UpdateField := FeldListe.Selected <> nil;
FieldEditForm.showmodal;
end;
{ Add new field }
procedure TMDIChild.MenuAddFieldClick(Sender: TObject);
begin
FieldEditForm.UpdateField := false;
FieldEditForm.showmodal;
end;
procedure TMDIChild.CreateDatabase(Sender: TObject);
var dbname : String;
begin
// Create new Database:
if InputQuery('Create new Database...', 'Database Name:', dbname) then begin
Screen.Cursor := crSQLWait;
ZQuery3.SQL.Clear();
ZQuery3.SQL.Add('CREATE DATABASE ' + dbname);
Try
ZQuery3.ExecSQL;
ActualDatabase := dbname;
ReadDatabasesAndTables(self);
except
MessageDLG('Creation failed.'+crlf+'Maybe '''+dbname+''' is not a valid database-name.', mtError, [mbOK], 0)
end;
Screen.Cursor := crDefault;
end;
end;
procedure TMDIChild.Timer2Timer(Sender: TObject);
begin
// show mdi-form (kr點ke...)
show;
Application.ProcessMessages;
Timer2.Enabled := false;
end;
procedure TMDIChild.MenuAdvancedPropertiesClick(Sender: TObject);
begin
tbl_properties_form.showmodal;
end;
procedure TMDIChild.TabellenlisteEdited(Sender: TObject; Item: TListItem;
var S: String);
var i : Integer;
begin
// edit table-name
menudroptable.ShortCut := TextToShortCut('Del');
ExecQuery( 'ALTER TABLE ' + mainform.mask(Item.Caption) + ' RENAME ' + mainform.mask(S) );
ActualTable := S;
ShowDBProperties(self);
// Re-Select Entry
for i:=0 to Tabellenliste.Items.Count-1 do
if TabellenListe.Items[i].Caption = S then
break;
TabellenListe.Selected := TabellenListe.Items[i];
TabellenListe.Items[i].Focused := true;
// Important! Otherwise OnEdited refreshes list too:
abort;
end;
procedure TMDIChild.MenuRenameTableClick(Sender: TObject);
begin
// menuitem for edit table-name
Tabellenliste.Selected.EditCaption;
end;
procedure TMDIChild.MenuViewBlobClick(Sender: TObject);
begin
PageControl3.ActivePageIndex := 1;
end;
procedure TMDIChild.Timer3Timer(Sender: TObject);
begin
try
showstatus('Pinging host...', 2, 51);
ExecQuery( SQL_PING );
showstatus('Ready', 2);
except
showstatus('Connection to Host terminated abnormally!');
Timer3.Enabled := false;
end;
end;
procedure TMDIChild.Timer4Timer(Sender: TObject);
var
stunden, minuten, sekunden : Integer;
begin
// calculate and display connection-time
sekunden := time_connected mod (60*60*24);
stunden := sekunden div (60*60);
sekunden := sekunden mod (60*60);
minuten := sekunden div 60;
sekunden := sekunden mod 60;
inc(time_connected);
showstatus(format('Connected: %.2d:%.2d:%.2d', [stunden,minuten,sekunden]), 1);
end;
procedure TMDIChild.Clear1Click(Sender: TObject);
begin
// clear
if SynMemo3.Focused then
SynMemo3.Lines.Clear
else
synmemo1.Lines.Clear;
end;
procedure TMDIChild.MenuTableCommentClick(Sender: TObject);
begin
// table-comment
tablecomment.showmodal;
end;
procedure TMDIChild.Clear2Click(Sender: TObject);
begin
// clear history-memo
Screen.Cursor := crHourglass;
SynMemo2.Lines.Clear;
Screen.Cursor := crDefault;
end;
procedure TMDIChild.EditQuery1Click(Sender: TObject);
begin
// take query from history to query-tab
SynMemo1.Text := SynMemo2.SelText;
PageControl1.ActivePage := SheetQuery;
pcChange(self);
end;
procedure TMDIChild.Markall3Click(Sender: TObject);
begin
// select all in history
SynMemo2.SelectAll;
end;
procedure TMDIChild.More1Click(Sender: TObject);
begin
optimize.showmodal;
end;
procedure TMDIChild.MenuOptimizeClick(Sender: TObject);
var
i : Integer;
begin
// Optimize tables
Screen.Cursor := crHourGlass;
try
for i:=0 to Tabellenliste.Items.Count - 1 do
begin
if Tabellenliste.Items[i].Selected then
ExecQuery( 'OPTIMIZE TABLE ' + mainform.mask(Tabellenliste.Items[i].Caption) );
end;
finally
Screen.Cursor := crDefault;
end;
end;
procedure TMDIChild.MenuCheckClick(Sender: TObject);
var
i : Integer;
tables : String;
begin
// Check tables
Screen.Cursor := crHourGlass;
try
tables := '';
for i:=0 to Tabellenliste.Items.Count - 1 do
if Tabellenliste.Items[i].Selected then begin
if tables <> '' then
tables := tables + ', ';
tables := tables + mainform.mask(Tabellenliste.Items[i].Caption);
end;
ExecQuery( 'CHECK TABLE ' + tables + ' QUICK' );
finally
Screen.Cursor := crDefault;
end;
end;
procedure TMDIChild.MenuAnalyzeClick(Sender: TObject);
var
i : Integer;
tables : String;
begin
// Analyze tables
Screen.Cursor := crHourGlass;
try
tables := '';
for i:=0 to Tabellenliste.Items.Count - 1 do
if Tabellenliste.Items[i].Selected then begin
if tables <> '' then
tables := tables + ', ';
tables := tables + mainform.mask(Tabellenliste.Items[i].Caption);
end;
ExecQuery( 'ANALYZE TABLE ' + tables );
finally
Screen.Cursor := crDefault;
end;
end;
procedure TMDIChild.MenuRepairClick(Sender: TObject);
var
i : Integer;
tables : String;
begin
// Repair tables
Screen.Cursor := crHourGlass;
try
tables := '';
for i:=0 to Tabellenliste.Items.Count - 1 do
if Tabellenliste.Items[i].Selected then begin
if tables <> '' then
tables := tables + ', ';
tables := tables + mainform.mask(Tabellenliste.Items[i].Caption);
end;
ExecQuery( 'REPAIR TABLE ' + tables + ' QUICK' );
finally
Screen.Cursor := crDefault;
end;
end;
procedure TMDIChild.TabellenlisteDblClick(Sender: TObject);
begin
// table-doubleclick
if Tabellenliste.Selected <> nil then begin
SheetTable.TabVisible := Tabellenliste.Selected <> nil;
SheetData.TabVisible := Tabellenliste.Selected <> nil;
ActualTable := Tabellenliste.Selected.Caption;
ShowTableProperties(self);
end;
end;
procedure TMDIChild.Timer5Timer(Sender: TObject);
begin
// can't connect -> close MDI-Child
timer5.Enabled := false;
timer4.Enabled := false;
mainf
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?