diff --git a/packages/delphiXE5/heidisql.dpr b/packages/delphiXE5/heidisql.dpr index c832d6bb..24f314ba 100644 --- a/packages/delphiXE5/heidisql.dpr +++ b/packages/delphiXE5/heidisql.dpr @@ -71,7 +71,6 @@ begin Application.UpdateFormatSettings := False; Application.CreateForm(TMainForm, MainForm); Application.OnMessage := Mainform.OnMessageHandler; - MainForm.AfterFormCreate; Application.OnDeactivate := MainForm.ApplicationDeActivate; Application.MainFormOnTaskBar := True; Application.Run; diff --git a/source/main.dfm b/source/main.dfm index 225bff62..661c0681 100644 --- a/source/main.dfm +++ b/source/main.dfm @@ -9756,6 +9756,7 @@ object MainForm: TMainForm end object ApplicationEvents1: TApplicationEvents OnDeactivate = ApplicationEvents1Deactivate + OnIdle = ApplicationEvents1Idle Left = 504 Top = 152 end diff --git a/source/main.pas b/source/main.pas index 95f2a81e..6010c149 100644 --- a/source/main.pas +++ b/source/main.pas @@ -584,7 +584,7 @@ type procedure WMCopyData(var Msg: TWMCopyData); message WM_COPYDATA; procedure FormDestroy(Sender: TObject); procedure FormCreate(Sender: TObject); - procedure AfterFormCreate; + procedure AfterFormShow; procedure FormShow(Sender: TObject); procedure FormResize(Sender: TObject); procedure actUserManagerExecute(Sender: TObject); @@ -921,6 +921,7 @@ type Shift: TShiftState; X, Y: Integer); procedure lblMenuMouseEnter(Sender: TObject); procedure lblMenuMouseLeave(Sender: TObject); + procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean); private // Executable file details FAppVerMajor: Integer; @@ -929,6 +930,7 @@ type FAppVerRevision: Integer; FAppVersion: String; + FAfterFormShowFinished: Boolean; FLastHintMousepos: TPoint; FLastHintControlIndex: Integer; FDelimiter: String; @@ -1415,6 +1417,7 @@ var CoolBand: TCoolBand; begin caption := APPNAME; + FAfterFormShowFinished := False; // First time translation via dxgettext. // Issue #3064: Ignore TFont, so "Default" on mainform for WinXP users does not get broken. @@ -1718,7 +1721,7 @@ end; {** Check for connection parameters on commandline or show connections form. } -procedure TMainForm.AfterFormCreate; +procedure TMainForm.AfterFormShow; var LastSessions, FileNames: TStringlist; Connection: TDBConnection; @@ -11285,6 +11288,18 @@ begin end; +procedure TMainForm.ApplicationEvents1Idle(Sender: TObject; var Done: Boolean); +begin + // Show up session manager in first idle time. MainForm is visible at this point. + // See http://www.heidisql.com/forum.php?t=14133 + if not FAfterFormShowFinished then begin + FAfterFormShowFinished := False; + AfterFormShow; + Done := True; + end; +end; + + procedure TMainForm.ApplicationDeActivate(Sender: TObject); begin // Prevent completion window from showing up after Alt-Tab. See issue #2640