Show main form's real taskbar button

4 отговора 93 прегледа
#1

Show main form's real taskbar button


protected
//Show main form's real task button
procedure CreateParams(var Params: TCreateParams); override;
end;

var
frmMain: TfrmMain;

implementation

{$R *.dfm}


procedure TfrmMain.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);

//Hide the button created by Delphi for the Application
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);

//Show a button for the main form
with Params do
begin
ExStyle := ExStyle or WS_EX_APPWINDOW;
WndParent := GetDesktopwindow;
end;
end;


Отговор
в отговор на Wise Guy #2

Oops

Kato "kriem" application-a po tozi nachin (naglasqme go na tool window) ima problem s Minimize. Otiva dolu v ugulcheto edno takovka smeshno.

Vmesto :
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);

Probvah :
SetWindowLong(Application.Handle, GWL_EXSTYLE,
GetWindowLong(Application.Handle, GWL_EXSTYLE) xor (not WS_EX_APPWINDOW));

Estestveno tova e greshni i Style-a stava otricatelno chislo. Mojesh da vidish kak na purvoto button-che na taskbar-a, menu-to mu izliza ogledalno na drugata strana

Ta, da vi pitam, nqkoi ima li ideq kak da Hide-na butona na Application-a bez da bug-vam vsichko. Opitah se da namerq kude tochno pishe che TApp trqbva da ima buton, no ne mojah da go namerq

10x en avance

Отговор
в отговор на Wise Guy #3

4REAL


//Show main form's real task button
procedure CreateParams(var Params: TCreateParams); override;
procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
end;

var
frmMain: TfrmMain;

implementation

{$R *.dfm}


procedure TfrmMain.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);

//Hide the button created by Delphi for the Application
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);

//Show a button for the main form
with Params do
begin
ExStyle := ExStyle or WS_EX_APPWINDOW;
WndParent := GetDesktopwindow;
end;
end;

procedure TfrmMain.WMSysCommand(var Message: TWMSysCommand);
begin
//Handle minimize application bug
if (Message.CmdType and $FFF0 = SC_MINIMIZE) then
DefWindowProc(Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0);
else
inherited;
end;


Отговор
в отговор на Wise Guy #4

Re: Oops

probwal li si

ShowWindow (application.handle,SW_HIDE)?

------------------------------
I got a COMPILER, and I'm not afraid to use it!

Редактирано от SDR на

Отговор
в отговор на SDR #5

Re: Oops

To poslednoto, koeto sum post-nal vurvi dobre.
Inache si prav, che ne se setih, da se podsigurq, da ne se vijda application.handle-a

Отговор