childwin.pas

来自「MysqlFront的源码」· PAS 代码 · 共 2,085 行 · 第 1/5 页

PAS
2,085
字号
UNIT Childwin;


// -------------------------------------
// HeidiSQL
// MDI-Child-Window
// -------------------------------------


INTERFACE

uses Windows, Classes, Graphics, Forms, Controls, StdCtrls,
  ExtCtrls, ComCtrls, ImgList, SysUtils, Dialogs, Menus, SortListView,
  SynEdit, SynMemo, SynEditHighlighter, SynHighlighterSQL,
  Registry, Spin, Clipbrd, Shellapi,
  Buttons, CheckLst, ToolWin, Db, DBGrids,
  DBCtrls, helpers,
  Grids, messages, smdbgrid, Mask, ZDataset,
  ZAbstractRODataset, ZAbstractDataset, ZAbstractTable, ZConnection,
  ZSqlUpdate, ZSqlMonitor, ZPlainMySqlDriver, ZImage;


type
  TMDIChild = class(TForm)
    Panel1: TPanel;
    ImageList1: TImageList;
    DBtree: TTreeView;
    Splitter1: TSplitter;
    TableShow: TPanel;
    PageControl1: TPageControl;
    SheetData: TTabSheet;
    SheetDatabase: TTabSheet;
    Splitter2: TSplitter;
    SheetQuery: TTabSheet;
    PopupMenu1: TPopupMenu;
    Drop1: TMenuItem;
    Panel2: TPanel;
    ImageList2: TImageList;
    SheetTable: TTabSheet;
    Panel3: TPanel;
    pmenu2: TPopupMenu;
    menuviewdata: TMenuItem;
    menuproperties: TMenuItem;
    menuinsert: TMenuItem;
    menudroptable: TMenuItem;
    menuemptytable: TMenuItem;
    SheetHost: TTabSheet;
    PageControl2: TPageControl;
    TabSheet6: TTabSheet;
    TabSheet7: TTabSheet;
    VariabelListe: TSortListView;
    ProcessListe: TSortListView;
    PopupMenu2: TPopupMenu;
    Kill1: TMenuItem;
    NewDatabase1: TMenuItem;
    Tabellenliste: TSortListView;
    Refresh1: TMenuItem;
    Panel4: TPanel;
    Panel5: TPanel;
    Panel6: TPanel;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton13: TToolButton;
    ToolBar2: TToolBar;
    menurefresh: TMenuItem;
    N2: TMenuItem;
    Panel7: TPanel;
    ToolButton9: TToolButton;
    ToolButton10: TToolButton;
    SynSQLSyn1: TSynSQLSyn;
    SynMemo1: TSynMemo;
    Splitter3: TSplitter;
    menucreatetable: TMenuItem;
    OpenDialog1: TOpenDialog;
    Timer1: TTimer;
    PopupMenu3: TPopupMenu;
    Refresh2: TMenuItem;
    DropField1: TMenuItem;
    N3: TMenuItem;
    N5: TMenuItem;
    PopupmenuDropDatabase: TMenuItem;
    ButtonInsert: TToolButton;
    PopupMenuData: TPopupMenu;
    Refresh3: TMenuItem;
    Insertrecord2: TMenuItem;
    ButtonAddField: TToolButton;
    MenuAddField: TMenuItem;
    ButtonEditField: TToolButton;
    MenuEditField: TMenuItem;
    Timer2: TTimer;
    Result: TPopupMenu;
    Copyrecords1: TMenuItem;
    CopyasCSVData1: TMenuItem;
    N9: TMenuItem;
    Label4: TLabel;
    MenuAdvancedProperties: TMenuItem;
    N10: TMenuItem;
    MenuRenameTable: TMenuItem;
    MenuViewBlob: TMenuItem;
    Timer3: TTimer;
    Timer4: TTimer;
    N12: TMenuItem;
    MenuTableComment: TMenuItem;
    PopupMenu4: TPopupMenu;
    Clear2: TMenuItem;
    Copy1: TMenuItem;
    N13: TMenuItem;
    EditQuery1: TMenuItem;
    Markall3: TMenuItem;
    N15: TMenuItem;
    MenuOptimize: TMenuItem;
    MenuCheck: TMenuItem;
    MenuAnalyze: TMenuItem;
    MenuRepair: TMenuItem;
    N16: TMenuItem;
    More1: TMenuItem;
    Timer5: TTimer;
    PopupMenuDropTable: TMenuItem;
    N17: TMenuItem;
    Panel9: TPanel;
    FeldListe: TSortListView;
    CopycontentsasHTML1: TMenuItem;
    CopycontentsasHTML2: TMenuItem;
    Copy3: TMenuItem;
    Paste2: TMenuItem;
    N4: TMenuItem;
    DBGrid1: TSMDBGrid;
    DataSource1: TDataSource;
    DBGrid2: TSMDBGrid;
    DataSource2: TDataSource;
    Copytableas1: TMenuItem;
    Filter1: TMenuItem;
    MenuLimit: TMenuItem;
    Delete1: TMenuItem;
    N6: TMenuItem;
    QF1: TMenuItem;
    QF2: TMenuItem;
    QuickFilter1: TMenuItem;
    QF3: TMenuItem;
    QF4: TMenuItem;
    N7: TMenuItem;
    DropFilter1: TMenuItem;
    Table1: TMenuItem;
    ImageList3: TImageList;
    PopupMenu7: TPopupMenu;
    OpenDialog2: TOpenDialog;
    PrintList2: TMenuItem;
    PrintList3: TMenuItem;
    PrintList4: TMenuItem;
    N1: TMenuItem;
    MenuChangeType: TMenuItem;
    MenuChangeType2: TMenuItem;
    MenuChangeType3: TMenuItem;
    MenuChangeTypeOther: TMenuItem;
    N8: TMenuItem;
    MenuChangeType1: TMenuItem;
    MenuChangeType4: TMenuItem;
    MenuCopyTable: TMenuItem;
    PageControl3: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet8: TTabSheet;
    SynMemo2: TSynMemo;
    ToolBar3: TToolBar;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    PageControl4: TPageControl;
    TabSheet3: TTabSheet;
    DBMemo1: TDBMemo;
    TabSheet4: TTabSheet;
    SynMemo3: TSynMemo;
    ToolButton14: TToolButton;
    MenuTabelleLoeschen: TToolButton;
    N18: TMenuItem;
    MenuChangeType5: TMenuItem;
    MenuChangeType6: TMenuItem;
    selectall1: TMenuItem;
    ImageListProcesslist: TImageList;
    MenuAutoupdate: TMenuItem;
    TimerProcesslist: TTimer;
    Set1: TMenuItem;
    EnableAutoRefresh: TMenuItem;
    DisableAutoRefresh: TMenuItem;
    Saveastextfile1: TMenuItem;
    QF7: TMenuItem;
    QF5: TMenuItem;
    QF6: TMenuItem;
    Panel8: TPanel;
    ToolBarQuery: TToolBar;
    ButtonRunQuery: TToolButton;
    ButtonRunSelection: TToolButton;
    ButtonLoadSQL: TToolButton;
    ButtonSaveSQL: TToolButton;
    ToolButton15: TToolButton;
    PanelCharsInQueryWindow: TPanel;
    ToolButtonStopOnErrors: TToolButton;
    Panel10: TPanel;
    ComboBoxWhereFilters: TComboBox;
    ToolBar4: TToolBar;
    ToolButton18: TToolButton;
    ToolButton11: TToolButton;
    ToolButton12: TToolButton;
    ToolButton17: TToolButton;
    ToolButton16: TToolButton;
    BtnPreviousFilter: TToolButton;
    BtnNextFilter: TToolButton;
    QF8: TMenuItem;
    QF10: TMenuItem;
    QF11: TMenuItem;
    QF9: TMenuItem;
    QF12: TMenuItem;
    CopyasXMLdata1: TMenuItem;
    CopyasXMLdata2: TMenuItem;
    Exportdata1: TMenuItem;
    Exportdata2: TMenuItem;
    SaveDialogExportData: TSaveDialog;
    N11: TMenuItem;
    ProgressBarQuery: TProgressBar;
    ToolButton19: TToolButton;
    Copy2: TMenuItem;
    Copy4: TMenuItem;
    N14: TMenuItem;
    Copyfieldcontents1: TMenuItem;
    DataInsertDateTime: TMenuItem;
    DataTimestamp: TMenuItem;
    DataDateTime: TMenuItem;
    DataTime: TMenuItem;
    DataDate: TMenuItem;
    DataYear: TMenuItem;
    ViewasHTML1: TMenuItem;
    ToolButton4: TToolButton;
    HTMLview1: TMenuItem;
    ToolButton5: TToolButton;
    ScrollBox1: TScrollBox;
    InsertfilesintoBLOBfields1: TMenuItem;
    InsertfilesintoBLOBfields2: TMenuItem;
    InsertfilesintoBLOBfields3: TMenuItem;
    N19: TMenuItem;
    Gemini1: TMenuItem;
    setNULL1: TMenuItem;
    ZConn: TZConnection;
    ZQuery1: TZReadOnlyQuery;
    ZQuery2: TZQuery;
    ZQuery3: TZReadOnlyQuery;
    ZSQLMonitor1: TZSQLMonitor;
    ZDbImage1: TZDbImage;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ReadDatabasesAndTables(Sender: TObject);
    procedure DBtreeChange(Sender: TObject; Node: TTreeNode);
    procedure pcChange(Sender: TObject);
    procedure viewdata(Sender: TObject);
    procedure ShowDBProperties(Sender: TObject);
    procedure ShowTableProperties(Sender: TObject);
    procedure TabellenlisteChange(Sender: TObject; Item: TListItem;
      Change: TItemChange);
    procedure TabelleAnzeigen(Sender: TObject);
    procedure TabelleLeeren(Sender: TObject);
    procedure TabelleLoeschen(Sender: TObject);
    procedure DBLoeschen(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure showstatus(msg: string='';  panel : Integer=0;  Icon: Integer=50);
    procedure LogSQL(msg: string = '');
    procedure ShowVariablesAndProcesses(Sender: TObject);
    procedure ProcessListeChange(Sender: TObject; Item: TListItem;
      Change: TItemChange);
    procedure CreateDatabase(Sender: TObject);
    procedure KillProcess(Sender: TObject);
    procedure PageControl2Change(Sender: TObject);
    procedure ExecSQLClick(Sender: TObject; Selection: Boolean = false; CurrentLine: Boolean=false);
    procedure FeldListeChange(Sender: TObject; Item: TListItem;
      Change: TItemChange);
    procedure DropField(Sender: TObject);
    procedure SynMemo1Change(Sender: TObject);
    procedure CreateTable(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormDeactivate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure UpdateField(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure MenuAdvancedPropertiesClick(Sender: TObject);
    procedure TabellenlisteEdited(Sender: TObject; Item: TListItem;
      var S: String);
    procedure MenuRenameTableClick(Sender: TObject);
    procedure MenuViewBlobClick(Sender: TObject);
    procedure Timer3Timer(Sender: TObject);
    procedure Timer4Timer(Sender: TObject);
    procedure Clear1Click(Sender: TObject);
    procedure MenuTableCommentClick(Sender: TObject);
    procedure Clear2Click(Sender: TObject);
    procedure EditQuery1Click(Sender: TObject);
    procedure Markall3Click(Sender: TObject);
    procedure ReadWindowOptions;
    procedure More1Click(Sender: TObject);
    procedure MenuOptimizeClick(Sender: TObject);
    procedure MenuCheckClick(Sender: TObject);
    procedure MenuAnalyzeClick(Sender: TObject);
    procedure MenuRepairClick(Sender: TObject);
    procedure TabellenlisteDblClick(Sender: TObject);
    procedure Timer5Timer(Sender: TObject);
    procedure DBGrid1TitleClick(Column: TColumn);
    procedure Filter1Click(Sender: TObject);
    procedure MenuLimitClick(Sender: TObject);
    procedure Delete1Click(Sender: TObject);
    procedure QuickFilterClick(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure PageControl4Change(Sender: TObject);
    procedure ToolButton8Click(Sender: TObject);
    procedure ToolButton7Click(Sender: TObject);
    procedure ToolButton11Click(Sender: TObject);
    procedure ToolButton12Click(Sender: TObject);
    procedure setFilter(Sender: TObject);
    procedure ClearFilter(Sender: TObject);
    procedure LoadSQLWhereFile(Sender: TObject);
    procedure DropFilter1Click(Sender: TObject);
    procedure MenuChangeTypeClick(Sender: TObject);
    procedure MenuChangeTypeOtherClick(Sender: TObject);
    procedure InsertRecord(Sender: TObject);
    procedure ZQuery2AfterOpen(DataSet: TDataSet);
    procedure selectall1Click(Sender: TObject);
    procedure ResultPopup(Sender: TObject);
    procedure DBGrid1ColumnMoved(Sender: TObject; FromIndex,
      ToIndex: Integer);
    procedure Autoupdate1Click(Sender: TObject);
    procedure EnableAutoRefreshClick(Sender: TObject);
    procedure ShowProcessList(sender: TObject);
    procedure DisableAutoRefreshClick(Sender: TObject);
    procedure SynMemo1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure SynMemo1DragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure SynMemo1DropFiles(Sender: TObject; X, Y: Integer;
      AFiles: TStrings);
    procedure DBGridColEnter(Sender: TObject);
    procedure SynMemo1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure PopupMenu2Popup(Sender: TObject);
    procedure TabellenlisteKeyPress(Sender: TObject; var Key: Char);
    procedure TabellenlisteEditing(Sender: TObject; Item: TListItem;
      var AllowEdit: Boolean);
    procedure Saveastextfile1Click(Sender: TObject);
    procedure PopupMenu1Popup(Sender: TObject);
    procedure ToolButton15Click(Sender: TObject);
    procedure LoadSQLClick(Sender: TObject);
    procedure ButtonSaveSQLClick(Sender: TObject);
    procedure ButtonLoadSQLClick(Sender: TObject);
    procedure BtnPreviousFilterClick(Sender: TObject);
    procedure BtnNextFilterClick(Sender: TObject);
    procedure ComboBoxWhereFiltersChange(Sender: TObject);
    procedure ToolButtonStopOnErrorsClick(Sender: TObject);
    procedure DBGridDblClick(Sender: TObject);
    procedure SaveDialogExportDataTypeChange(Sender: TObject);
    procedure DBGrid1GetCellParams(Sender: TObject; Field: TField;
      AFont: TFont; var Background: TColor; Highlight: Boolean);
    procedure DBGridEnter(Sender: TObject);
    procedure DBGridExit(Sender: TObject);
    procedure PopupMenuDataPopup(Sender: TObject);
    procedure InsertDate(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure DBGrid2GetCellParams(Sender: TObject; Field: TField;
      AFont: TFont; var Background: TColor; Highlight: Boolean);
    procedure setNULL1Click(Sender: TObject);
    procedure MenuAddFieldClick(Sender: TObject);
    procedure ZQuery2AfterScroll(DataSet: TDataSet);
    procedure ZQuery2BeforeClose(DataSet: TDataSet);
    procedure ExecQuery( SQLQuery: String );
    function GetVar( SQLQuery: String; x: Integer = 0 ) : String;
    procedure GetResults( SQLQuery: String; ZQuery: TZReadOnlyQuery );
    procedure ZSQLMonitor1LogTrace(Sender: TObject; Event: TZLoggingEvent);

    private
      { Private declarations }
      strHostRunning             : String;
      uptime, time_connected     : Integer;
      OnlyDBs                    : TStringList;  // used on connecting
      rowcount                   : Integer;      // rowcount of ActualTable
      viewingdata                : Boolean;
      ItemToDrop                 : TTreeNode;    // TreeNode for dropping with right-click
      WhereFilters               : TStringList;
      WhereFiltersIndex          : Integer;
      StopOnErrors, WordWrap     : Boolean;

    public
      { Public declarations }
      ActualDatabase, ActualTable: string;
      dataselected, editing      : Boolean;
      mysql_version              : Integer;
      tnodehost                  : TTreeNode;
      OnlyDBs2                   : TStringList;
      Description                : String;
  end;


// --------------------------------------------------------------------------------------
IMPLEMENTATION

uses
  connections, Main, createtable, fieldeditor, tbl_properties,
  tblcomment, selectsomedatabases, optimizetables, copytable,
  mysqlerror;



const
	CRLF = #13#10;
  SQL_PING = 'SELECT 1';

{$R *.DFM}



procedure TMDIChild.FormCreate(Sender: TObject);
var
  AutoReconnect    : Boolean;
begin

⌨️ 快捷键说明

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