DruckenMister WongFacebook

Systemmenü erweitern

System Win9x, WinNT, Win2000, WinXP, Vista, Win7
Ab Delphi-Version Delphi 1
Letzte Änderung 06.03.2011

Das Systemmenü der Form kann mit folgender Prozedur problemlos um einen eigenen Menüpunkte erweitert werden:

procedure TForm1.Button1Click(Sender: TObject);
begin
  if not AppendMenu(GetSystemMenu(Handle, False),
          MF_STRING,
          $F200, //über $F200 wird der Menüpunkt später identifiziert
          'Copyrights...') then
  RaiseLastOSError;
end;

RaiseLastOSError ist erst ab Delphi 6 verfügbar. Programmierer, die mit älteren Versionen arbeiten müssen an dieser Stelle RaiseLastWin32Error verwenden.In der Windows-SDK findest du unter AppendMenu noch weitere Konstanten, die das Aussehen des Menüs bestimmen. Die Konstante MF_STRING gibt an, dass es sich bei dem Menüpunkt, um einen Eintrag mit Text handelt. Eine Trennlinie fügt man hinzu, indem man die Konstante MF_SEPARATOR wählt.Über die ID-Nummer, die dem dritten Parameter übergeben wird, wird der Menüpunkt später identifiziert. Es lassen sich auch Einträge mit gleicher ID-Nummer hinzufügen, die dann allerdings gleich reagieren.Nun muss unserem Menüpunkt nur noch eine Prozedur zugewiesen werden.Diese wird im Private-Abschnit der Form deklariert:


 private
   procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
 

Jetzt fehlt noch die eigentliche Prozedur:


implementation

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
 inherited; //Nicht vergessen!!!
 if Message.CmdType = $F200 then
   ShowMessage('Copyrigths by ???');
end;
 

Wie sie das Systemmenü verkleinern, können Sie unter den Verweisen lesen.

Ähnliche Seiten: