Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi How2 LoadAccelerators? (https://www.delphipraxis.net/18557-how2-loadaccelerators.html)

dmw256 20. Mär 2004 21:26


How2 LoadAccelerators?
 
Moin!

Ich will mit LoadAccelerators und eigenem Resource-File Menu und Shortcuts erstellen und hab dafür sowas in 'n Resource-File gesteckt und mit BRC32 umgewandelt.

Code:
#define id_save  1000

Menu     MENU
BEGIN
  POPUP "&File"
  BEGIN
    MENUITEM "&Save\tF3", id_save
  END
END

Acce    ACCELERATORS
BEGIN
  VK_F3,    id_save, VIRTKEY
END
Im Programm kommt dann sowas wie:

Code:
  accel:=LoadAccelerators(hInstance,'Acce');

  while GetMessage(msg,0,0,0) do
  begin
    if TranslateAccelerator(wnd,accel,msg)=0 then
    begin
      TranslateMessage(msg);
      DispatchMessage(msg);
    end;
   end;
Das Menü klappt super, aber die Shortcuts nisch... Die WinProc wird zwar mit 'nem WM_COMMAND aufgerufen, aber wParam erhält immer 65536, nie id_save :pale: (eigentlich sollte doch TranslateAccelerator die WinProc mit den richtigen Werten füttern, oder?)
Hab ich irgendwas vergessen???

Danke schon jetzt für jede Hilfe
dmw256

NicoDE 20. Mär 2004 21:33

Re: How2 LoadAccelerators?
 
Zitat:

Zitat von dmw256
Code:
accel:=LoadAccelerators(hInstance,'Acce');

Ist accel nach dem Aufruf <> 0?
Zitat:

Zitat von dmw256
aber wParam erhält immer 65536

65536 = $00010000. Das HiWord gitb an ob die Aktion vom Menü stammt (0) oder von einem Accelerator (1). Im LoWord steht die ID.

dmw256 20. Mär 2004 21:41

Re: How2 LoadAccelerators?
 
Hmmm...

dann klappt das aber mit der ID nicht...
Die sollte ja eigentlich 1000 sein :|

NicoDE 20. Mär 2004 21:47

Re: How2 LoadAccelerators?
 
Zitat:

Zitat von dmw256
dann klappt das aber mit der ID nicht...

Und die Auswahl des per Menü funktioniert?

dmw256 20. Mär 2004 21:49

Re: How2 LoadAccelerators?
 
Ja, die Auswahl per Menü klappt super!

Accel ist auch <>0.

dmw256 20. Mär 2004 22:56

Re: How2 LoadAccelerators?
 
Hey - ich hab den Fehler entdeckt!

Und es traue es mich ja kaum zu sagen: hab nur mit 'nem halben Auge hingeschaut: die 65536 war in Wirklichkeit 'ne 66536...
Asche auf mein Haupt...

Vielen Dank - ohne die Hilfe hätte ich ewig gesucht!

Luckie 21. Mär 2004 10:24

Re: How2 LoadAccelerators?
 
Mehr zum Thema findest du hier: http://www.luckie-online.de/Tutorials/ -> "Win32API Tutorials für Delphi".


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 Uhr.

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