Mega Code Archive
Add menu items to the system menu
The following form shows how to add your own menu items to the form's
system menu and where to process them:
unit Unit1;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics,
Controls, Forms, Dialogs, Menus;
type
TForm1 = class (TForm)
procedure FormCreate (Sender: TObject);
private
{ private declarations }
public
procedure WinMsg (var Msg: TMsg; var Handled: Boolean);
{ This is what handles the messages }
procedure DOWHATEVER;
{ procedure to do whatever }
end;
var
Form1 : TForm1;
implementation
{$R *.DFM}
const
ItemId = 99;
{the ID number for your menu item--can be anything}
procedure TForm1.WinMsg (var Msg: TMsg; var Handled: Boolean);
begin
if Msg.message = WM_SYSCOMMAND then
{if the message is a system one...}
if Msg.WPARAM = ItemId then
DOWHATEVER
{then check if its parameter is your Menu items ID}
end;
procedure TForm1.FormCreate (Sender: TObject);
begin
Application.OnMessage := WinMsg;
{tell your app that 'winmsg' is the application message handler}
AppendMenu (GetSystemMenu (Form1.Handle, False),
MF_SEPARATOR, 0, '');
{Add a seperator bar to form1}
AppendMenu (GetSystemMenu (Form1.Handle, False),
MF_BYPOSITION, ItemId, '&New Item');
{add your menu item to form1}
AppendMenu (GetSystemMenu (Application.Handle, False),
MF_SEPARATOR, 0, '');
{Add a seperator bar to the application system menu(used }
{when app is minimized)}
AppendMenu (GetSystemMenu (Application.Handle, False),
MF_BYPOSITION, ItemId, '&New Item')
{add your menu itemto the application system menu(used when app is minimized)}
{ for more information on the AppendMenu and GetSystemMenu see online help}
end;
procedure TForm2.DOWHATEVER;
begin
{ add whatever you want to this procedure }
end;
end.