mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-16 15:29:35 +02:00
Win32: handle System.CmdShow at startup. Patch by Domingo Galmés, slightly modified by me. Issue ##39363.
This commit is contained in:
parent
65b11fca12
commit
4b4e2cef9c
lcl
@ -1384,7 +1384,11 @@ end;
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TApplication.Run;
|
||||
begin
|
||||
if (FMainForm <> nil) and FShowMainForm then FMainForm.Show;
|
||||
if (FMainForm <> nil) and FShowMainForm then
|
||||
begin
|
||||
WidgetSet.AppSetupMainForm(FMainForm);
|
||||
FMainForm.Show;
|
||||
end;
|
||||
WidgetSet.AppRun(@RunLoop);
|
||||
end;
|
||||
|
||||
|
@ -80,6 +80,10 @@ procedure TWidgetSet.AppSetMainFormOnTaskBar(const DoSet: Boolean);
|
||||
begin
|
||||
end;
|
||||
|
||||
procedure TWidgetSet.AppSetupMainForm(AMainForm: TObject); //e.g. handle widgetset specific startup info
|
||||
begin
|
||||
end;
|
||||
|
||||
function TWidgetSet.GetLCLCapability(ACapability: TLCLCapability): PtrUInt;
|
||||
begin
|
||||
case ACapability of
|
||||
|
@ -146,6 +146,7 @@ type
|
||||
function AppRemoveStayOnTopFlags(const ASystemTopAlso: Boolean = False): Boolean; virtual;
|
||||
function AppRestoreStayOnTopFlags(const ASystemTopAlso: Boolean = False): Boolean; virtual;
|
||||
procedure AppSetMainFormOnTaskBar(const DoSet: Boolean); virtual;
|
||||
procedure AppSetupMainForm(AMainForm: TObject); virtual;
|
||||
|
||||
function LCLPlatform: TLCLPlatform; virtual; abstract;
|
||||
function GetLCLCapability(ACapability: TLCLCapability): PtrUInt; virtual;
|
||||
|
@ -187,6 +187,7 @@ type
|
||||
function AppRemoveStayOnTopFlags(const ASystemTopAlso: Boolean = False): Boolean; override;
|
||||
function AppRestoreStayOnTopFlags(const ASystemTopAlso: Boolean = False): Boolean; override;
|
||||
procedure AppSetMainFormOnTaskBar(const DoSet: Boolean); override;
|
||||
procedure AppSetupMainForm(AMainForm: TObject); override;
|
||||
|
||||
function InitStockFont(AFont: TObject; AStockFont: TStockFont): Boolean; override;
|
||||
|
||||
|
@ -562,6 +562,22 @@ begin
|
||||
RecreateWnd(Application.MainForm);
|
||||
end;
|
||||
|
||||
procedure TWin32WidgetSet.AppSetupMainForm(AMainForm: TObject);
|
||||
var
|
||||
// AMainForm is guaranteed to be a TCustomForm
|
||||
MainForm: TCustomForm absolute AMainForm;
|
||||
begin
|
||||
//Handle CmdShow parameter when invoked from a shortcut.
|
||||
case System.CmdShow of
|
||||
SW_SHOWNORMAL: ; //don't alter WindowState
|
||||
SW_SHOWMINNOACTIVE,
|
||||
SW_SHOWMINIMIZED,
|
||||
SW_MINIMIZE: MainForm.WindowState := wsMinimized;
|
||||
SW_SHOWMAXIMIZED: MainForm.WindowState := wsMaximized;
|
||||
SW_SHOWFULLSCREEN: MainForm.WindowState := wsFullScreen;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TWin32WidgetSet.LCLPlatform: TLCLPlatform;
|
||||
begin
|
||||
Result:= lpWin32;
|
||||
|
Loading…
Reference in New Issue
Block a user