![]() |
Hotkey to String
Hallo
gibts sowas wie HotkeytoString ? MfG |
Re: Hotkey to String
|
Re: Hotkey to String
Hallo
ich weis auch nicht aber ich bekomms nicht hin. Wie geht das mit ShortCutToText(), kann mir jemand mal ein kurzes Beispiel machen ? Und gleich noch ne Frage : Wenn ich einen TJVHotkey habe und den Hotkey davon einem TJVApplicationHotkey.Hotkey zuweisen möchte sagt er Incompatible Types TShortCut und TJvHotkey. Wie geht das ? MfG |
Re: Hotkey to String
Leider nein. Die WinAPI schafft es allerdings, einen Hotkey in einem einzigen Integer zu speichern. Das und die Funktionen, die die VCL mitbringt, sollte reichen, oder?
Mom...
Delphi-Quellcode:
Damit bekommst du den Hotkey-Code. Per HKM_SETHOTKEY kannst du natürlich wieder setzen. Und wenn du wirklich einen String brauchst - hol dir den text des hotkey-controls:
SendMessage(Hotkey1.Handle, HKM_GETHOTKEY,0,0);
![]() Rückumwandeln kannst du den aber nicht. //roter Kasten Na toll... ich wusste ich hatte was vergessen... aber dieser post quillt so über mit Wissen, den kann ich nicht verwerfen. //zweiter roter kasten tja... da werden die jedis wohl ihre eigene routine haben um hotkey in text umzuwandeln. mom... TJvApplicationHotkey hat einen ganz normalen TShortCut. Ich hab das Gefühl ich muss meine JVCL updaten, denn ein TJvHotkey hab ich nciht :shock: EDIT: Es muss eine Routine geben um das umzuwandeln. Robert Marquardt, wo bist du?! |
Re: Hotkey to String
Ein Integer würde mir reichen, wenn ich einen bekommen würde.
Ich will den Hotkey von einem JVHotkey. Also JvHotkey1.hotkey1 in einen Integer. Wie genau geht das dann mit SendMessage(Hotkey1.Handle, HKM_GETHOTKEY,0,0); ? |
Re: Hotkey to String
Du bekommst da ein Integer zurück. Das ist dein Hotkey. ->
![]() EDIT: In deinem Fall:
Delphi-Quellcode:
HotKeyIdent := SendMessage(JvHotkey1.Handle, HKM_GETHOTKEY,0,0);
|
Re: Hotkey to String
Warscheinlich bin ich einfach nicht fürs programmieren geschaffen.
Delphi-Quellcode:
So ?
procedure TForm1.Button1Click(Sender: TObject);
var HotKeyIdent : integer; begin HotKeyIdent := SendMessage(JvHotkey1.Handle, HKM_GETHOTKEY,0,0); end; Soll das dann heisen, dass das HotKeyIdent dann mein Integer ist .? Was muss ich bei uses alles reinmachen ? Ist das das Problem, weil ichs einfach nicht hinbekomme dass er es nimmt, unn wenn doch kommt 0 raus. MfG |
Re: Hotkey to String
Ja, so passts eigentlich. Da sollte dann aber nicht 0 rauskommen... der TJvHotkey ist ein Visual Control, oder? Wo ist denn der definiert? Ich find ihn leider bei mir nicht.
PS: Nicht verzweifeln. An den Hotkeys sind schon die VCL-Programmierer gescheitert: ![]() |
Re: Hotkey to String
Was genau meinst du ?
Das Ding heist TJvHotkey unter JvEdits. Edit : Es muss nicht unbedingt ein Jvhotkey sein es geht auch ein normaler Hotkey wenn das besser geht. |
Re: Hotkey to String
Hmm... naja, wie du an dem link oben siehst, ist der VCL-Hotkey nicht besonders vertrauenerweckend. Wie gesagt, du hast offenbar ne neuere JVCL(Die Unit JvEdits hab ich nicht mal), aber da der TJvHotKey ja auch mit nem WinAPI-Hotkey-Control arbeitet (arbeiten müsste), müsste es genauso funktionieren...
du kannst hier jetzt nur auf jemanden warten, der schon die neueste JVCL hat und sich auch mit den Hotkeys beschäftigt. Ich hab hier nur Modem und werd mir deswegen mal die Sourcen ziehen, wenn ich die ordentlich installiert bekomm, kann ich dir vielleicht heute noch näheres sagen. (du hast die 3.30, oder?) |
Re: Hotkey to String
Ja
|
Re: Hotkey to String
Liste der Anhänge anzeigen (Anzahl: 1)
Sodele, hab mal was zusammengepackt für dich.
|
Re: Hotkey to String
Danke. :-D :thumb:
Aber wie würde das jetzt andersrum aussehen ?
Delphi-Quellcode:
so irgendwie?JvHotKey1.Hotkey:=SendMessage(Edit1.Handle,HKM_SETHOTKEY,0,0); MfG |
Re: Hotkey to String
Nein.
![]()
Delphi-Quellcode:
SendMessage(JvHotKey1.Handle, HKM_SETHOTKEY, SavedHotKeyValue, 0);
|
Re: Hotkey to String
Da immer A bei mir rauskommt vermute ich, ich habe wieder was falsch gemacht.
Delphi-Quellcode:
const
HKM_GETHOTKEY = WM_USER+2; HKM_SETHOTKEY = WM_USER+2; implementation {$R *.dfm} procedure TForm2.Button1Click(Sender: TObject); begin Edit1.Text := IntToStr(SendMessage(JvHotKey1.Handle,HKM_GETHOTKEY,0,0)); end; procedure TForm2.Button2Click(Sender: TObject); begin JvHotKey2.Hotkey:=SendMessage(JvHotKey2.Handle, HKM_SETHOTKEY, 66, 0); // 66 = B end; end. |
Re: Hotkey to String
*push*
Kann mir hier bitte jemand helfen. MfG |
Re: Hotkey to String
Hallo,
du musst da Virtual-Key Codes benutzen. Konstanten VK_... Außerdem:
Delphi-Quellcode:
{JvHotKey2.Hotkey:=}SendMessage(JvHotKey2.Handle, HKM_SETHOTKEY, 66, 0);
Das auskommentierte bitte aus deinem Source entfernen, das gibt keinen Sinn. |
Re: Hotkey to String
Irgendwie habe ich das gefühl, dass das ganz einfach ist, ich aber nu mal wieder zu dabbig bin.
Was meinst du mit VK_ ? Es wäre dann ja zb VK_A oder VK_RIGHT aber ich hab doch erst GetHotkey gemacht und dann die Zahl bekommen. Und nicht VK_ ? MfG |
Re: Hotkey to String
Du bekommst natürlich nur Zahlenwerte. Aber diese Zahlenwerte sind Virtual-Key Codes.
Zum setzen musst du diese virtual-Key Cdes benutzen. Anzeigen kannst du sie jederzeit mit einer THotkey-Komponente. Und speichern und laden über die Messages. |
Re: Hotkey to String
Ist ja alles einleuchtend irgendwie was du schreibtst aber :pale: .
Delphi-Quellcode:
var Form1: TForm1; a : integer; const HKM_GETHOTKEY = WM_USER+2; HKM_SETHOTKEY = WM_USER-2; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Edit1.Text := IntToStr(SendMessage(JvHotKey1.Handle,HKM_GETHOTKEY,0,0)); end; procedure TForm1.Button2Click(Sender: TObject); begin //1. SendMessage(a, HKM_SETHOTKEY, 66, 0); Edit1.text:=inttostr(a); //2. SendMessage(JvHotKey2.Handle, HKM_SETHOTKEY, 66, 0); end; Also so habe ich das jetzt aber bei 1. kommt 0 raus (geht das überhaupt so) ? Und bei 2. passiert gar nichts. Button1Click geht wunderbar. Ich glaube ein ganz kurzes Beispiel sagt mehr als 1000 Posts; Ich möchte hier die lieben Leute nicht so arg nerven. MfG |
Re: Hotkey to String
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich schaffs jetzt selber grad nicht...
Delphi-Quellcode:
sollte eigentlich völlig reichen, um "ALT+X" im hotkey-edit erscheinen zu lassen... tuts aber nicht.
hotkey := MakeWord(Byte(Ord('X')), Byte(HOTKEYF_ALT));
SendMessage(HotKey1.Handle,HKM_SETHOTKEY,hotkey,0); Der hotkey bleibt wie er ist. Ich hab keine Ahnung wieso. EDIT: MÖP! HKM_SETHOTKEY = WM_USER+1; keine ahnung wo das -2 herkommt.... |
Re: Hotkey to String
Ich danke dir vielmals.
Es geht :-D :-D . |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:20 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