Entwickler-Ecke
Sonstiges (Delphi) - Taskbar
Wanni - Fr 30.08.02 11:23
Titel: Taskbar
Hallo
Wenn ein Programm in die Taskbar minimiert wurde, können meist mittels rechter Maustaste Funktionen wie Close und Restore ausgeführt werden. Wie bringe ich einen eigenen Eintrag in dieses Menue (hinter dem sich eine eigene Funktion versteckt).
Besten Dank :shock:
Arakis - Fr 30.08.02 12:06
Was meinst du genau, wie man ein PopUpMenü integriert, oder wie die Funkion lauten muss?
In der "Fenster-Öffnen"- Funktion kommt ganz einfach in
rein.
Bis dann
Wanni - Fr 30.08.02 12:19
Nein, wenn ein Progamm minimiert ist
und man die Rechte Maustaste drückt
erscheint ein Menu, das möchte ich erweitern.
Gruss Wanni :shock:
Arakis - Fr 30.08.02 12:27
Nutzt du etwa eine Komponente dafür? Wo kommt denn das Menü her, dass ja schon vorhanden ist?
Bis dann
toms - Fr 30.08.02 12:45
Mit GetSystemMenu(Application.Handle) bekommst du das Handle zum Systemmenü. Mit AppendMenu kannst du dort eigene Items hinzufügen.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:
| private procedure AppMessage(var Msg: TMsg; var Handled: Boolean);
{...}
implementation
{...}
const SC_MeinMenuItem1 = $100;
procedure TForm1.FormCreate(Sender: TObject); var hSysMenu: THandle; begin // Handle yum Systemmenü ermitteln hSysMenu := GetSystemMenu(Application.Handle, False); // Eigene Menüitems einfügen AppendMenu(hSysMenu, MF_SEPARATOR, 0, #0); AppendMenu(hSysMenu, MF_STRING, SC_MeinMenuItem1, '&Mein Menüitem'); // OnMessage event handler festlegen Application.OnMessage := AppMessage; end;
// OnMessage event handler procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean); begin if Msg.message = WM_SYSCOMMAND then begin case Msg.wParam of SC_MeinMenuItem1: begin ShowMessage('SC_MeinMenuItem1'); Handled := True; end; end; end; end; |
Wanni - Fr 30.08.02 13:02
Besten Dank das war genau was ich wollte!
Gruss Wanni :shock:
toms - Fr 30.08.02 13:05
@Tino: Hast du deinen Code ausprobiert? Funktioniert nämlich nicht.
(WM_SYSCOMMAND wird nicht ausgelöst)
Tino - Fr 30.08.02 13:14
Also bei mir funktioniert es!
Arakis - Fr 30.08.02 13:16
Sorry, aber bei mir funktioniert es auch nicht :(
XP-Sytem
Bis dann
toms - Fr 30.08.02 13:18
Bei mir funktioniert's nur für das Systemmenü der Form aber
nicht für das Systemmenü der Applikation (in der Taskleiste)
Mit einem OnMessage Handler funktioniert's jedoch für beide.
(OS: Win XP)
Tino - Fr 30.08.02 13:37
Sorry, hatte es nur über das Form-Menü ausprobiert!
Stimmt natürlich. Hab die FAQ geändert!
Gruß
TINO
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!