Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Systemmenü eines Progs ändern (https://www.delphipraxis.net/37798-systemmenue-eines-progs-aendern.html)

Delphi Star 10. Jan 2005 19:10


Systemmenü eines Progs ändern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wie kann man das Systemmenü (s. Anhang) eines Progs ändern. Ich möchte alle Standarteintäge löschen und meine eigenen hinzufügen. Ich weiß nur wie man die Einträge des Menüs ändern kann das sich öffnet, wenn man mit rechten Maustaste auf die Titelleiste des Fensters klickt.

SirThornberry 10. Jan 2005 19:51

Re: Systemmenü eines Progs ändern
 
schau dir mal die funktionen
- GetMenu
- SetMenu
- InsertMenuItem
etc. an (die hilfe verweist unter den einzelnen einträgen auf weitere funktionen (bzw. das msdn))

mr47 10. Jan 2005 20:12

Re: Systemmenü eines Progs ändern
 
Also mich interessiert das auch aber ich komm mit InserMEnuItem nicht zurecht:

Was ist PMenu??? und welche Parameter muss ich noch angeben?

Aus der Hilfe werd ich au net Schlau :(

Delphi Star 10. Jan 2005 21:31

Re: Systemmenü eines Progs ändern
 
Ich werd aus der Hilfe auch nicht wirklich schlau :(
Könnte vielleicht mal jemand ein Beispiel machen.

Luckie 10. Jan 2005 21:51

Re: Systemmenü eines Progs ändern
 
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    procedure WndProc(var msg: TMessage); override;
  end;

var
  Form1        : TForm1;

implementation

{$R *.dfm}

const
  MY_MENU_ID = 999;

procedure TForm1.Button1Click(Sender: TObject);
var
  hMenu       : THandle;
begin
  hMenu := GetSystemMenu(Handle, False);
  if hMenu <> 0 then
  begin
    if not DeleteMenu(hMenu, 6, MF_BYPOSITION) then
      ShowMessage(SysErrorMessage(GetLastError));
    DrawMenuBar(hMenu);
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  hMenu       : THandle;
begin
  hMenu := GetSystemMenu(Handle, False);
  if hMenu <> 0 then
  begin
    if not InsertMenu(hMenu, 6, MF_BYPOSITION, MY_MENU_ID, 'Mein Menüitem') then
      ShowMessage(SysErrorMessage(GetLastError));
    DrawMenuBar(hMenu);
  end;
end;

procedure TForm1.WndProc(var msg: TMessage);
begin
  inherited;
  case msg.Msg of
    WM_SYSCOMMAND:
      begin
        if hiword(msg.WParam) = 0 then
        begin
          case loword(msg.WParam) of
            MY_MENU_ID: ShowMessage('Buuuh!');
          end;
        end;
      end;
  end;
end;
Schaltfläche eins entfernt den Menüpunkt "Schließen" und Schaltfläche zwei fügt einen Menüpunkt hinzu, den man sogar anklicken kann und es passiert was.

mr47 10. Jan 2005 22:00

Re: Systemmenü eines Progs ändern
 
Thx. Werd mir des mal angucken...

bate 7. Apr 2005 09:21

Re: Systemmenü eines Progs ändern
 
Sorry wenn ich den etwas älteren Thread ausgrabe, aber irgend wie will das bei mir unter XP nicht gehen. Ich bekomm mein Menu nicht. Jemand ne Idee?

[Edit]

ok hat sich erledigt. :) Sollte wohl drauf achten auch wirklich das Handle der Anwendung zu holen und nicht die des Fensters :)

shmia 7. Apr 2005 10:41

Re: Systemmenü eines Progs ändern
 
Ich würd's mir einfach machen und eine Komponente verwenden.
http://www.torry.net/pages.php?id=147

faux 8. Mai 2005 12:11

Re: Systemmenü eines Progs ändern
 
Noch eine ergänzende Frage:

Wie kann ich da einen Radio-Button draus machen?
Also so zum Anhaken (unter XP zum Anpunkten *g*). Ich wills nämlich für "Always on Top" haben....

Luckie 8. Mai 2005 12:23

Re: Systemmenü eines Progs ändern
 
Guck dir meine nonVCL Tutorials an und dort das Kapitel zu den Menüs.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz