Autor |
Beitrag |
Wanni
Hält's aus hier
Beiträge: 3
|
Verfasst: Fr 30.08.02 11:23
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 
|
|
Arakis
      
Beiträge: 344
|
Verfasst: 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
Quelltext
rein.
Bis dann

_________________ Mit dem Computer löst man Probleme, die man ohne ihn nicht hätte.
Entwickler von SpaceTrek: The New Empire - Siehe Hompage!
|
|
Wanni 
Hält's aus hier
Beiträge: 3
|
Verfasst: 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 
|
|
Arakis
      
Beiträge: 344
|
Verfasst: 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

_________________ Mit dem Computer löst man Probleme, die man ohne ihn nicht hätte.
Entwickler von SpaceTrek: The New Empire - Siehe Hompage!
|
|
toms
      
Beiträge: 1099
Erhaltene Danke: 2
|
Verfasst: 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.
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; |
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Fr 30.08.02 12:57
Ich hab hier einen FAQ Beitrag eingefügt:
Wie kann ich das Systemmenü erweitern?
Gruß
TINO
|
|
Wanni 
Hält's aus hier
Beiträge: 3
|
Verfasst: Fr 30.08.02 13:02
Besten Dank das war genau was ich wollte!
Gruss Wanni 
|
|
toms
      
Beiträge: 1099
Erhaltene Danke: 2
|
Verfasst: Fr 30.08.02 13:05
@Tino: Hast du deinen Code ausprobiert? Funktioniert nämlich nicht.
(WM_SYSCOMMAND wird nicht ausgelöst)
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Fr 30.08.02 13:14
Also bei mir funktioniert es!
|
|
Arakis
      
Beiträge: 344
|
Verfasst: Fr 30.08.02 13:16
Sorry, aber bei mir funktioniert es auch nicht
XP-Sytem
Bis dann

_________________ Mit dem Computer löst man Probleme, die man ohne ihn nicht hätte.
Entwickler von SpaceTrek: The New Empire - Siehe Hompage!
|
|
toms
      
Beiträge: 1099
Erhaltene Danke: 2
|
Verfasst: 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
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: 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
|
|