Autor Beitrag
Thomas233
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Win 2000, Win Xp
Delphi 6 Personal
BeitragVerfasst: So 18.05.03 19:14 
Hallo,

ich habe ein Programm geschrieben das Hotkeys benutzt. Die Hotkeys werden mit Suche in: Delphi-Forum, Delphi-Library REGISTERHOTKEY und Suche in: Delphi-Forum, Delphi-Library UNREGISTERHOTKEY aus der Windows-Api registriert/entfernt. Das Auswerten beim Klick eines Hotkeys wird auch behandelt.

Das Problem besteht darin das ich will das sich der Benutzer den Hotkey aussucht, mit dem er das Programm öffnet. Daher habe ich ein Textfeld gemacht in dem man den Buchstaben definieren kann. Als Kombination wird dann STRG+Buchstabe verwendet.

Der Buchstabe den der Benutzer dann eingibt wird in eine Ini-Datei mit "WriteString" geschrieben (Uppercase inklusive). Das Programm lädt den Buchstaben dann aus der Ini und soll den Hotkey registrieren:
ausblenden Delphi-Quelltext
1:
RegisterHotKey(Form.Handle,id1,0, Ini.Readstring('Section','Buchstabe','R'));					

Da ich den letzten Parameter, der ein "virtual key" sein muss, aber weder mit "Ini.Readsting(...)", noch mit "Ord(Ini.Readstring(...))" einbetten kann funktioniert das nicht. Auch mit einer Variable als Shortcut funktioniert das nicht.

Kann jemand helfen, weiss jemand eine Lösung? Ich bitte sehr darum da mein Prog dann fertig ist.

_________________
Mit freundlichen Grüßen
Thomas233
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: So 18.05.03 21:22 
Du setzt ja im Moment so den Hotkey fest :

ausblenden Delphi-Quelltext
1:
2:
  id1:=GlobalAddAtom('Hotkey1');
  RegisterHotKey(handle,id1,MOD_CONTROL,VK_B);


Jetzt musst Du Dir überlegen, wie Du es machst. Da ja VK_B dem ASCII-code 66 entspricht, musst Du entweder bei Schreiben in die INI den Wert setzen oder den eingegeben Buchstaben in die INI schreiben. Du musst auf jeden Fall so oder so umwandeln.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 19.05.03 11:58 
Es ginge auch noch so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
var
  ch : string[1];
begin
  { ... }
  ch := Ini.ReadString('Section','Buchstabe','R');

  RegisterHotKey(Form.Handle,
    id1,
    0,
    word(ch[1]));
  { ... }
end;

Es dürfen also weiterhin die Buchstaben in der INI gespeichert werden, und man überlässt Delphi das Umwandeln (casten) des Wertes.
Thomas233 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

Win 2000, Win Xp
Delphi 6 Personal
BeitragVerfasst: Mo 02.06.03 18:47 
Vielen Dank, das zweite hat geholfen :D

_________________
Mit freundlichen Grüßen
Thomas233