Ajouter des éléments dans le menu système
Comment faire pour ajouter des éléments au système de menu en haut à gauche du formulaire.
type
TForm1 = class(TForm)
...
procedure FormCreate(Sender: TObject)
private
procédure WMSYSCOMMAND(var message: TWMSYSCOMMAND) message WM_SYSCOMMAND
...
procedure TForm1.FormCreate(Sender: TObject)
const
MenuCaption = ' & ...'
var
i: Integer
SystemMenu: HMenu
MENUITEMINFO: TMENUITEMINFO
begin
SystemMenu := GetSystemMenu(Poignée, False)
i := GetMenuItemCount(SystemMenu)
FillChar(MENUITEMINFO, SizeOf(MENUITEMINFO), 0)
{ Ne pas utiliser SizeOf(MENUITEMINFO) parce que c'est nécessaire pour
Windows 95 }
MENUITEMINFO.cbSize := 44
// Séparateur
MENUITEMINFO.fMask := MIIM_TYPE
MENUITEMINFO.fType := MFT_SEPARATOR
InsertMenuItem(SystemMenu, je, VRAI, MENUITEMINFO)
// Ajout d'Environ maintenant
MENUITEMINFO.fMask := MIIM_TYPE ou MIIM_ID
MENUITEMINFO.fType := MFT_STRING
MENUITEMINFO.dwTypeData := PChar(MenuCaption)
MENUITEMINFO.cch := Longueur(MenuCaption)
MENUITEMINFO.wID := 1101 // ID doit être < $F000
InsertMenuItem(SystemMenu, i 1, TRUE, MENUITEMINFO)
fin
procedure TForm1.WMSYSCOMMAND(var message: TWMSYSCOMMAND)
begin
hérité
cas de message.CmdType de
1101: ShowMessage('a Propos de moi')
fin
fin
Le code précédent n'est pas ajouter un élément de menu dans le menu système de la
bouton de l'application dans la barre des tâches (clic droit). C'est
parce que delphi crée une fenêtre masquée. Que vous avez à faire le travail
deux fois afin d'ajouter le même menu pour cette fenêtre. Malheureusement,
l'objet recevant le message WM_SYSCOMMAND est que la fenêtre :
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject)
private
procédure OnAppMessage(var Msg: TMsg var Traités: Boolean)
fin
...
procedure TForm1.FormCreate(Sender: TObject)
const
MenuCaption = ' & ...'
var
i: Integer
SystemMenu: HMenu
MENUITEMINFO: TMENUITEMINFO
begin
Application.OnMessage := OnAppMessage
SystemMenu := GetSystemMenu(Application.Poignée, False)
// même code comme avant
...
fin
procedure TForm1.OnAppMessage(var Msg: TMsg var Traités: Boolean)
begin
if (Msg.message = WM_SYSCOMMAND) et (Msg.wParam = 1101)
begin
ShowMessage('a Propos de moi')
Manipulé := True
fin
fin
Ajouter des elements dans le menu systeme
Ajouter des elements dans le menu systeme : Plusieurs milliers de conseils pour vous faciliter la vie.
Comment faire pour ajouter des elements au systeme de menu en haut a gauche du formulaire.
type
TForm1 = class(TForm)
...
procedure FormCreate(Sender: TObject)
private
procedure WMSYSCOMMAND(var message: TWMSYSCOMMAND) message WM_SYSCOMMAND
...
procedure TForm1.FormCreate(Sender: TObject)
const
MenuCaption = ' & ...'
var
i: Integer
SystemMenu: HMenu
MENUITEMINFO: TMENUITEMINFO
begin
SystemMenu := GetSystemMenu(Poignee, False)
i := GetMenuItemCount(SystemMenu)
FillChar(MENUITEMINFO, SizeOf(MENUITEMINFO), 0)
{ Ne pas utiliser SizeOf(MENUITEMINFO) parce que c'est necessaire pour
Windows 95 }
MENUITEMINFO.cbSize := 44
// Separateur
MENUITEMINFO.fMask := MIIM_TYPE
MENUITEMINFO.fType := MFT_SEPARATOR
InsertMenuItem(SystemMenu, je, VRAI, MENUITEMINFO)
// Ajout d'Environ maintenant
MENUITEMINFO.fMask := MIIM_TYPE ou MIIM_ID
MENUITEMINFO.fType := MFT_STRING
MENUITEMINFO.dwTypeData := PChar(MenuCaption)
MENUITEMINFO.cch := Longueur(MenuCaption)
MENUITEMINFO.wID := 1101 // ID doit etre < $F000
InsertMenuItem(SystemMenu, i 1, TRUE, MENUITEMINFO)
fin
procedure TForm1.WMSYSCOMMAND(var message: TWMSYSCOMMAND)
begin
herite
cas de message.CmdType de
1101: ShowMessage('a Propos de moi')
fin
fin
Le code precedent n'est pas ajouter un element de menu dans le menu systeme de la
bouton de l'application dans la barre des taches (clic droit). C'est
parce que delphi cree une fenetre masquee. Que vous avez a faire le travail
deux fois afin d'ajouter le meme menu pour cette fenetre. Malheureusement,
l'objet recevant le message WM_SYSCOMMAND est que la fenetre :
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject)
private
procedure OnAppMessage(var Msg: TMsg var Traites: Boolean)
fin
...
procedure TForm1.FormCreate(Sender: TObject)
const
MenuCaption = ' & ...'
var
i: Integer
SystemMenu: HMenu
MENUITEMINFO: TMENUITEMINFO
begin
Application.OnMessage := OnAppMessage
SystemMenu := GetSystemMenu(Application.Poignee, False)
// meme code comme avant
...
fin
procedure TForm1.OnAppMessage(var Msg: TMsg var Traites: Boolean)
begin
if (Msg.message = WM_SYSCOMMAND) et (Msg.wParam = 1101)
begin
ShowMessage('a Propos de moi')
Manipule := True
fin
fin
Ajouter des éléments dans le menu système
By commentfaire
Ajouter des éléments dans le menu système : Plusieurs milliers de conseils pour vous faciliter la vie.