![]() |
Hotkey bei Image Kompente
Beim Durchstöbern des Forum habe ich zwar ein paarr Threads zum Thema Hotkeys gefunden, aber nichts, was mir weiter geholfen hat.
Und zwar benutze ich Images als Buttons und geklickt werden sie via Mouse Down. Das Problem ist, ich weiss nicht wie ich es hinbekommen soll, nen Hotkey mit den Images zu verlinken (nennt man das so?) und auch per Hotkey Komponente, dem Benutzer zu ermöglichen, selber seinen Hotkey zu nennen. PS: Ich bin noch nen ziemlicher Anfänger in diesem Bereich, darum nicht mich mit Super komplizierte Codes zuballern :) |
Re: Hotkey bei Image Kompente
Okey, Newbie-Antwort, aber dennoch habe ich in einem anderen Thread folgendes gefunden:
Delphi-Quellcode:
Müsste man damit nicht auch den hotkey abfragen können und anstatt der Button-Click Prozedur deine eigene Routine reinschreiben können?
if Key=13 then
begin Key := 0; SuchBtn.Click; // SuchBtn = Name des Buttons end; MfG, hanselmansel |
Re: Hotkey bei Image Kompente
Das Problem ist ja, das der Hotkey nen Systemweiter Hotkey sein soll, ganz vergessen das zu sagen.
Aber bei deinem Code kann ich nicht sehen, welchen Hotkey man drücken muss. Und wenn ich mich nicht irre, müssen die ja erst Registriert werden und beim Beenden des Programmes wieder De-Registriert. |
Re: Hotkey bei Image Kompente
Okey... da DAS nun eindeutig meine Kompetenzen übersteigt, überlasse ich die Frage nun Anderen, die mehr Ahnung von der Materie haben.
|
Re: Hotkey bei Image Kompente
![]() |
Re: Hotkey bei Image Kompente
statt den konstanten kannst auch direkt WORD('A') für die taste A übergeben als letzten parameter bei RegisterHotKey, liefert 65 was $41 entspricht, für Enter kannst vk_return genauso wie 13 bzw halt $0D verwenden, eben die entsprechende nummer von der guten alten acsii tabelle
und inwiefern man die mod-konstanten neu definieren muss is auch fraglich, bei Delphi 6 zumindest sind die genau gleich wie die in der windows-unit, also warum nicht von dort nehmen?
Delphi-Quellcode:
const
{$EXTERNALSYM MOD_ALT} MOD_ALT = 1; {$EXTERNALSYM MOD_CONTROL} MOD_CONTROL = 2; {$EXTERNALSYM MOD_SHIFT} MOD_SHIFT = 4; {$EXTERNALSYM MOD_WIN} MOD_WIN = 8; |
Re: Hotkey bei Image Kompente
Jau sieht schon sehr gut aus. Nur da sind nicht alle VK's für die einzelnen Buchstaben wie z.B. b,c,d etc. dabei, gibt es da vllt eine Liste?
ich werde nun versuchen das ganze ins das Programm einzubauen, wenn es Probleme gibt melde ich mich. Aber ich könnte ja weitere Vorschläge machen :) //Edit: Das war aber wer schneller *g*. Das heisst also ich kann auch vk_b, vk_c etc. nehmen ? //Edit 2:@neolithos: Ja ich habe ein TImage als Button verwendet. Hast du eine Idee wie ich dass denn sonst umsetzen kann ? |
Re: Hotkey bei Image Kompente
Wenn du TImage verwendet hast, kannst du den Hotkey nicht direkt an das Control binden, da es kein Windows-Fenster-Handle besitzt.
|
Re: Hotkey bei Image Kompente
Zitat:
Delphi-Quellcode:
F1 bis F12 sind vordefiniert (vk_f1, ...), genauso wie Enter (vk_return) und andere Tasten, schau in die unit Windows und such nach "VK_", da wirst einiges finden :wink:
const
vk_A=65; vk_B=66; vk_C=67; {..usw..} vk_Z=90; vk_0=48; vk_1=49 {..usw..} das TImage selbst hat kein handle, deswegen wird der hotkey ja auch für das handle des Fensters registriert, das Fenster erhält dann auch den Hotkey:
Delphi-Quellcode:
procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin if Msg.HotKey = in_registerhotkey_angegebener_id then Image1.OnMouseDown(nil,mbleft,[],0,0); end; |
Re: Hotkey bei Image Kompente
Das heisst ich registriere den Hotkey und wenn ich ihn dann drücke, gemäß dem Code
Code:
müsste es eigentlich funktionieren. Ich werde es später mal ausprobieren.
procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin if Msg.HotKey = in_registerhotkey_angegebener_id then Image1.OnMouseDown(nil,mbleft,[],0,0); end; Fragt sich nun nurnoch wie ich die Hotkey-Komponente so verwende, damit der Benutzer selbst den Hotkey wählen kann, bzw. ich den Hotkey un- bzw. deregistriere. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:42 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