AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Hotkey, aber nicht global
Thema durchsuchen
Ansicht
Themen-Optionen

Hotkey, aber nicht global

Ein Thema von edmu · begonnen am 13. Apr 2006 · letzter Beitrag vom 13. Apr 2006
Antwort Antwort
edmu

Registriert seit: 27. Jul 2004
41 Beiträge
 
#1

Hotkey, aber nicht global

  Alt 13. Apr 2006, 06:31
hallo,

ich habe folgenden code geschrieben:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  if not RegisterHotkey(Handle, vk_F5, 0, vk_F5)
    then ShowMessage(SysErrorMessage(GetLastError));
end;

procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
  if Msg.HotKey = vk_F5 then showmessage('test f5');
end;
die taste funktioniert auch, aber auch dann, wenn ich ein anderes programm im vordergrund habe.
kann man den tastendruck nur dann abfragen, wenn das eigene programm aktiv ist?
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Hotkey, aber nicht global

  Alt 13. Apr 2006, 06:47
Hi,

Was auf jedenfall gehen müste wenn du ein TMainmenu in deine Form einbaust und da nen Shortcut mit F5 setzen tust. Dieser ist dann in der Tat nur in deinem Project "Global".
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#3

Re: Hotkey, aber nicht global

  Alt 13. Apr 2006, 07:03
Wenn Du nur eine Form benutzt und nicht extra ein Menü-Eintrag erstellen willst, dann kannst du KeyPreview auf TRUE stellen und dann in OnKeyDown, OnKeyPress und/oder OnKeyUp auf F5 reagieren.



Wenn mehrere Forms benutzt werden sollen, dann müsste eben auf allen KeyPreview auf TRUE stehen
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Hotkey, aber nicht global

  Alt 13. Apr 2006, 07:22
@devilsCamp
Ich habe das mal gemacht.

Wollte auf #37 also die Cursor Links Taste Reagieren.

auf meiner Form habe ich mehrere TButton und TCheckbox gesetzt.

und es hat leider nicht geklappt.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#5

Re: Hotkey, aber nicht global

  Alt 13. Apr 2006, 07:32
Wo hast du darauf reagiert?
In OnKeyPress?

So viel ich weiß, wird bei den Cursor-Tasten nur OnKeyDown und OnKeyUp ausgelöst.

Und da musst du mit den virtuellen Tastencodes arbeiten
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Hotkey, aber nicht global

  Alt 13. Apr 2006, 10:12
Ich habe es nu mal so gemacht.

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
showmessage(inttostr(key));
end;
Aber das tut bei den Cursor Tasten leider nicht.

Die Property KeyPrieview ist ntürlich auf Tru gesetzt.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#7

Re: Hotkey, aber nicht global

  Alt 13. Apr 2006, 10:35
Dann versuch mal folgendes:

Delphi-Quellcode:
// Allgemeine Behandlungsroutine einer Komponente
procedure TForm1.TastenDruckKeyDown(Sender: TObject);
begin
  Form1KeyDown(Sender);

  // Restlicher Code, der gemacht werden soll
end;

// KeyDown des Forms
procedure TForm1.Form1KeyDown(Sender: TObject);
begin
  // Was halt zu machen ist
end;

Ist zwar sicher nicht die beste Art, aber immo die schnellste Lösung, die mir so kurz vor meinem Osterurlaub einfällt
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Hotkey, aber nicht global

  Alt 13. Apr 2006, 10:45
Das Geht Leider auch nicht, mal abgesehen von den Falschen übergabeparametern.

Damit wir was haben das sich besser ansehn kann habe ich es mal Gecoded und mit angehängt.

Die Shomessage sollte halt auch bei den Pfeiltasten kommen.
Angehängte Dateien
Dateityp: zip problem_174.zip (1,1 KB, 11x aufgerufen)
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#9

Re: Hotkey, aber nicht global

  Alt 13. Apr 2006, 10:59
Zitat von Corpsman:
Das Geht Leider auch nicht, mal abgesehen von den Falschen übergabeparametern.
Kann ja mal passieren, wenn man nicht gerade vor seinem eigenen Rechner sitzt.


Interessanterweise funktioniert das bei "normalen" Tasten schon. Bei den Cursor-Tasten allerdings nicht.

Werde mal schauen, ob ich da was zurecht basteln kann. Allerdings kann das etwas dauern...
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#10

Re: Hotkey, aber nicht global

  Alt 13. Apr 2006, 11:13
Thx,

Es ist ja net wirklich eilig, habe bisher halt asdw genommen, nur gibt es leider ne ganze Menge User die das net blicken. Deswegen wären die Pfeiltasten halt besser.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz