unit MainMenu;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ShellAPI, TLHelp32, StdCtrls, Buttons, XPMan;
type
TMainfrm = class(TForm)
BitBtn1: TBitBtn;
XPManifest1: TXPManifest;
Button1: TButton;
Button2: TButton;
procedure Button2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Mainfrm: TMainfrm;
AppData: TAppBarData;
implementation
{$R *.dfm}
procedure TMainfrm.BitBtn1Click(Sender: TObject);
begin
close;
end;
procedure TMainfrm.Button1Click(Sender: TObject);
begin
SHAppBarMessage(ABM_NEW, AppData); //Add to system list
SHAppBarMessage(ABM_ACTIVATE, AppData); //Activate ot
SHAppBarMessage(ABM_SETPOS, AppData); //Position it
end;
procedure TMainfrm.Button2Click(Sender: TObject);
begin
MoveWindow(AppData.hWnd, AppData.rc.left, AppData.rc.top, AppData.rc.right - AppData.rc.left, AppData.rc.bottom - AppData.rc.top, TRUE); //Move the appbar into the specified rect
end;
procedure TMainfrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SHAppBarMessage(ABM_REMOVE, AppData); //Remove it on close
end;
procedure TMainfrm.FormCreate(Sender: TObject);
var
scrht:integer;
begin
mainfrm.Left := 0;
mainfrm.Width := screen.Width;
scrht := screen.Height;//for some reason we have to get this first
with AppData do //structure setup
begin
AppData.cbSize := 20;
Appdata.hWnd := mainfrm.Handle;
AppData.uEdge := ABE_TOP;
AppData.rc.Left := 0;
AppData.rc.Top := Screen.WorkAreaHeight-Mainfrm.Height-10;
AppData.rc.Right := Mainfrm.Width;
AppData.rc.Bottom := 30;//screen.height-20;
SHAppBarMessage(ABM_NEW, AppData); //Add to system list
SHAppBarMessage(ABM_ACTIVATE, AppData); //Activate it
SHAppBarMessage(ABM_SETPOS, AppData); //Position it
end;
application.ProcessMessages;
end;
end.