Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Hotkey to String (https://www.delphipraxis.net/87184-hotkey-string.html)

ebber 24. Feb 2007 17:20


Hotkey to String
 
Hallo

gibts sowas wie HotkeytoString ?

MfG

Muetze1 24. Feb 2007 17:39

Re: Hotkey to String
 
Delphi-Referenz durchsuchenShortCutToText()

ebber 24. Feb 2007 17:51

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

DGL-luke 24. Feb 2007 17:54

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:
SendMessage(Hotkey1.Handle, HKM_GETHOTKEY,0,0);
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: MSDN-Library durchsuchenGetWindowText

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?!

ebber 24. Feb 2007 18:22

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); ?

DGL-luke 24. Feb 2007 18:30

Re: Hotkey to String
 
Du bekommst da ein Integer zurück. Das ist dein Hotkey. -> MSDN-Library durchsuchenHKM_GETHOTKEY

EDIT: In deinem Fall:

Delphi-Quellcode:
HotKeyIdent := SendMessage(JvHotkey1.Handle, HKM_GETHOTKEY,0,0);

ebber 24. Feb 2007 18:53

Re: Hotkey to String
 
Warscheinlich bin ich einfach nicht fürs programmieren geschaffen.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

var HotKeyIdent : integer;

begin

HotKeyIdent := SendMessage(JvHotkey1.Handle, HKM_GETHOTKEY,0,0);

end;
So ?

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

DGL-luke 24. Feb 2007 19:02

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: http://www.delphipraxis.net/internal...t.php?t=102529 ;-)

ebber 24. Feb 2007 19:44

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.

DGL-luke 24. Feb 2007 21:07

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?)

ebber 24. Feb 2007 21:13

Re: Hotkey to String
 
Ja

DGL-luke 25. Feb 2007 15:01

Re: Hotkey to String
 
Liste der Anhänge anzeigen (Anzahl: 1)
Sodele, hab mal was zusammengepackt für dich.

ebber 25. Feb 2007 15:52

Re: Hotkey to String
 
Danke. :-D :thumb:


Aber wie würde das jetzt andersrum aussehen ?

Delphi-Quellcode:

JvHotKey1.Hotkey:=SendMessage(Edit1.Handle,HKM_SETHOTKEY,0,0);
so irgendwie?

MfG

DGL-luke 25. Feb 2007 15:57

Re: Hotkey to String
 
Nein.

MSDN-Library durchsuchenHKM_SETHOTKEY

Delphi-Quellcode:
SendMessage(JvHotKey1.Handle, HKM_SETHOTKEY, SavedHotKeyValue, 0);

ebber 25. Feb 2007 16:09

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.

ebber 27. Mär 2007 15:47

Re: Hotkey to String
 
*push*


Kann mir hier bitte jemand helfen.

MfG

DGL-luke 28. Mär 2007 15:05

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.

ebber 10. Apr 2007 18:15

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

DGL-luke 10. Apr 2007 18:32

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.

ebber 10. Apr 2007 20:11

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

DGL-luke 11. Apr 2007 10:33

Re: Hotkey to String
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich schaffs jetzt selber grad nicht...

Delphi-Quellcode:
hotkey := MakeWord(Byte(Ord('X')), Byte(HOTKEYF_ALT));
SendMessage(HotKey1.Handle,HKM_SETHOTKEY,hotkey,0);
sollte eigentlich völlig reichen, um "ALT+X" im hotkey-edit erscheinen zu lassen... tuts aber nicht.
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....

ebber 11. Apr 2007 13:06

Re: Hotkey to String
 
Ich danke dir vielmals.

Es geht :-D :-D .


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:53 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