Autor Beitrag
Regan Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Do 08.02.07 19:05 
user profile iconJayEff hat folgendes geschrieben:
user profile iconRegan hat folgendes geschrieben:
user profile iconKarlson hat folgendes geschrieben:

(Forward vom Handler nicht vergessen).

Was ist der Forward vom Handler?

Der Handler ist im OI unter Ereignisse der Eintrag dort. Verknüpfst du das Ereignis mit der Prozedur, hast du den Handler forwarded (wenn ich mich nicht irre ^^)

Hmm... Das hab ich nicht gemacht.
user profile iconJayEff hat folgendes geschrieben:
Hast du es mit einer neuen Tastenkombination bereits versucht?

Ja. Aber ich möchte trotzdem das Numpad nehmen.
user profile iconJayEff hat folgendes geschrieben:
und woher kommt bei dir das "inherited" ? Meine TForm1 hat keine prozedure WMHotkey... (Meine Prozedur heist WMhotkey, nicht hotkey.) Ausserdem glaube ich, mich zu erinnern, dass die prozedur privat deklariert werden muss... also
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
type TForm1
{...}
    Private
        Procedure WmHotkey(Var Msg: TMessage); Message WM_HOTKEY;
{...}
End;

Dsa hab ich schon geändert. Hatte bloß nicht den quelltext aktuallisiert.

Ich hab jetzt das Projekt mal angehängt.
Einloggen, um Attachments anzusehen!
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Do 08.02.07 19:21 
user profile iconRegan hat folgendes geschrieben:

user profile iconJayEff hat folgendes geschrieben:
Hast du es mit einer neuen Tastenkombination bereits versucht?

Ja. Aber ich möchte trotzdem das Numpad nehmen.
Is klar, die frage war mehr, hat es damit funktioniert, oder nicht? Denn wenn es funktioniert hat, können wir den teil mit RegisterHotkey als fehlerhaft ansehen, wenn nicht, dann ist es vielleicht eher der teil des Codes, der das hotkey registriert.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Regan Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Do 08.02.07 21:00 
user profile iconJayEff hat folgendes geschrieben:
user profile iconRegan hat folgendes geschrieben:

user profile iconJayEff hat folgendes geschrieben:
Hast du es mit einer neuen Tastenkombination bereits versucht?

Ja. Aber ich möchte trotzdem das Numpad nehmen.
Is klar, die frage war mehr, hat es damit funktioniert, oder nicht? Denn wenn es funktioniert hat, können wir den teil mit RegisterHotkey als fehlerhaft ansehen, wenn nicht, dann ist es vielleicht eher der teil des Codes, der das hotkey registriert.

Ich möchte das nochmal klarstellen:
Das Registrieren der Hoteys funktioniert. Alle Funktionen liefern "true" zurück. Allerdings kommt bei dem Programm an sich nichts an.

Und noch was: wie Forwarde ich den handler? Kannst du mir vielleicht nen screenshot zeigen oder code oder ne Beschreibung, wo ich das eintragen soll?
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Do 08.02.07 21:04 
Stell dir vor, du hast einen Button1 auf deinem Formular. Nun kopierst du einen Quellcode in deine Unit wie
ausblenden Delphi-Quelltext
1:
2:
3:
4:
Procedure TForm1.Button1Click(Sender: TObject);
Begin
    showmessage('hallo!');
End;

und das, ohne auf den Button zu doppel-klicken. beim ausführen und auf den Button klicken wird nix passieren, da Button1.onClick nicht mit der Prozedur verknüpft ist.
Doppelklickst du nun auf den Button, wird etwas wie Button1.onClick := Button1Click(Sender: TObject); ausgeführt und der Handler ist mit der Methode verknüpft.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Regan Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Do 08.02.07 21:10 
user profile iconJayEff hat folgendes geschrieben:
Stell dir vor, du hast einen Button1 auf deinem Formular. Nun kopierst du einen Quellcode in deine Unit wie
ausblenden Delphi-Quelltext
1:
2:
3:
4:
Procedure TForm1.Button1Click(Sender: TObject);
Begin
    showmessage('hallo!');
End;

und das, ohne auf den Button zu doppel-klicken. beim ausführen und auf den Button klicken wird nix passieren, da Button1.onClick nicht mit der Prozedur verknüpft ist.
Doppelklickst du nun auf den Button, wird etwas wie Button1.onClick := Button1Click(Sender: TObject); ausgeführt und der Handler ist mit der Methode verknüpft.

OK Hab ich verstanden. und wie soll ich nun die TWMHotkey verknüpfen?
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Do 08.02.07 21:17 
Damit hatte die sache nix zu tun. vielmehr wollte Karlson damit sagen, dass du, wenn du seinen code benutzt, die onKeyPress etc. Methoden verknüpfen sollst... Das ist also eher off topic.

Gut, nehmen wir an, das registrieren funktioniert perfekt, obwohl es mir nicht ausreicht, dass die funktionen true sagen.
Dann muss der code in deiner WMHotkey Prozedur liegen. benutz mal ganz genau meine, 1:1 kopiert
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
{...}
    Private
        Procedure WmHotkey(Var Msg: TMessage); Message WM_HOTKEY;
{...}
Procedure TForm1.WmHotkey(Var Msg: TMessage);
Begin
    showmessage('Eine WM_HOTKEY-Nachricht kam an!');
End;

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Regan Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Do 08.02.07 21:20 
Hab ich gemacht. Die Funktion wird nicht aufgerufen.

user profile iconJayEff hat folgendes geschrieben:
Damit hatte die sache nix zu tun. vielmehr wollte Karlson damit sagen, dass du, wenn du seinen code benutzt, die onKeyPress etc. Methoden verknüpfen sollst... Das ist also eher off topic.

Kannst du dir nich lieber meinen code angucken. Dann siehst du ja den Fehler.
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Do 08.02.07 21:25 
Ja kann ich. Fehler gefunden. Auf den ersten Blick :roll:
Dein code:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
  private
    strs: array[0..128] of HSTREAM;
    strc: Integer;
    procedure Error(msg: string);
    procedure WMHotkey(var msg: TMessage);

mein Code:
ausblenden Delphi-Quelltext
1:
2:
  private
        Procedure WmHotkey(Var Msg: TMessage); Message WM_HOTKEY;

Fällt dir was auf? :roll:

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Regan Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Do 08.02.07 21:32 
OK Hab ich eingefügt. außerdem:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.FormCreate(Sender: TObject);
var iniko:Tinifile;
f:PChar;
i:Integer;
begin
RegisterHotkey(Form1.handle,1,MOD_CONTROL or MOD_ALT, VK_NUMPAD1);
RegisterHotkey(Form1.handle,2,MOD_CONTROL or MOD_ALT, VK_NUMPAD2);
RegisterHotkey(Form1.handle,3,MOD_CONTROL or MOD_ALT, VK_NUMPAD3);
RegisterHotkey(Form1.handle,4,MOD_CONTROL or MOD_ALT, VK_NUMPAD4);
RegisterHotkey(Form1.handle,5,MOD_CONTROL or MOD_ALT, VK_NUMPAD5);
RegisterHotkey(Form1.handle,6,MOD_CONTROL or MOD_ALT, VK_NUMPAD6);
RegisterHotkey(Form1.handle,7,MOD_CONTROL or MOD_ALT, VK_NUMPAD7);
RegisterHotkey(Form1.handle,8,MOD_CONTROL or MOD_ALT, VK_NUMPAD8);
RegisterHotkey(Form1.handle,9,MOD_CONTROL or MOD_ALT, VK_NUMPAD9);
RegisterHotkey(Form1.handle,10,MOD_CONTROL or MOD_ALT, VK_NUMPAD0);
{...}

Hast du jetzt mal compiliert? Also bei kommt nichts an.
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Do 08.02.07 21:49 
Habe per SendMessage(Handle, WM_HOTKEY, 1, 0); die Nachricht bekommen. Es liegt definitiv am registrieren der Hotkeys, warum, kann ich dir nicht sagen. Ich spiel noch ein bisschen rum.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Regan Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Do 08.02.07 21:54 
user profile iconJayEff hat folgendes geschrieben:
Habe per SendMessage(Handle, WM_HOTKEY, 1, 0); die Nachricht bekommen.

Also kommen sie bei dir auch nicht an?
user profile iconJayEff hat folgendes geschrieben:
Es liegt definitiv am registrieren der Hotkeys, warum, kann ich dir nicht sagen. Ich spiel noch ein bisschen rum.

OK.
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Do 08.02.07 21:59 
user profile iconRegan hat folgendes geschrieben:
user profile iconJayEff hat folgendes geschrieben:
Habe per SendMessage(Handle, WM_HOTKEY, 1, 0); die Nachricht bekommen.

Also kommen sie bei dir auch nicht an?

Doch, die Nachricht WM_HOTKEY, manuell gesendet, kommt an. Das problem ist, dass die Tastenkombination wohl keine WM_HOTKEY sendet. Sehr seltsam.

Edit: Argh! :cry: ich gebs auf. Ich find keine Fehler -.-

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Fr 09.02.07 02:15 
Regan, vorhin schreibst du noch es würde allgemein kein Hotkey ankommen.
Jetzt stellt sich heraus das die Prozedur wohl doch so funktioniert wie beschrieben, wenn du eine andere Kombination registrierst als VK_Numpad.

Weiterhin gibst du in deinen Eingangspostings folgenden Code an:

ausblenden Delphi-Quelltext
1:
2:
3:
[...]
    procedure WMHotKey(var Msg: TWMHotKey);Message WM_HOTKEY;
[...]


Schaut man sich deinen Quellcode an stellt sich heraus dass du das gehighlightete eben doch nicht drin stehen hast

Ich gehe mal davon aus das dass der Grund war warum bei dir grundsätzlich keine Hotkeys angekommen sind.

Das ärgerliche ist dass wir uns nicht über 2 Seiten hätten unterhalten müssen wenn du beim posten hier ein wenig sorgfältiger vorgegangen wärst.

Ehrlich gesagt habe ich das spezielle Problem mit VK_numpad nicht wahrgenommen, da ich davon ausgegangen bin das bei dir RegisterHotkey allgemein nicht so funktioniert wie es funktionieren sollte. (In wirklichkeit hat es aber die ganze Zeit geklappt, nur eben nicht mit den von dir präferierten Hotkeys, oder es hätte die ganze Zeit geklappt wenn der Code in deiner Anwendung so ausgesehen hätte wie der den du hier gepostet hast).

Egal, ich bin nicht darauf aus mich zu streiten. Außerdem muss ich mich leider aus der Diskussion verabschieden, ich habe einen Laptop der über keinen Numblock verfügt, kann ergo nichts testen.


viel erfolg noch und
gruss
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Fr 09.02.07 13:08 
Leider stimmt das so nicht, wie du das sagst, Karlson. Ich habe das komplette projekt übernommen, bearbeitet und andere Tastencodes versucht. Abgesehen davon, dass die RegisterHotkey-Funktion true zurückgibt, klappt garnichts. Die WM_HOTKEY Nachricht wird durch keine Tastenkombination gesendet. Egal, ob ich eine benutze, die mein anderes Programm erfolgreich registrieren konnte, oder einfach nach dem Zufallsprinzip welche ausprobiere.
Kurios: Per SendMessage wird die WM_HOTKEY-Prozedur ausgelöst.
user profile iconKarlson hat folgendes geschrieben:
Außerdem muss ich mich leider aus der Diskussion verabschieden, ich habe einen Laptop der über keinen Numblock verfügt, kann ergo nichts testen.

Du kannst gern versuchen, andere Hotkeys zu registrieren, da auch das nicht funktioniert :(

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
zuma
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: Fr 09.02.07 13:25 
evtl. mal alle inherited auskommentieren ?
inherited lässt alle methoden 'ererben',
daher werden die Hotkeys evtl. vom vererbenden Objekt
überlagert (z.b. abfangen/umleiten).
Falls man aber ererben will/muss, einfach vor dem
inherited den code schreiben, könnte helfen.

_________________
Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Fr 09.02.07 13:26 
Wie Regan bereits gesagt hat, ist diese Zeile nicht mehr vorhanden. Ausserdem, wäre sie noch da und würde ein Problem verursachen, so dürfte SendMessage(Handle, WM_HOTKEY, 0, 0) nicht die Prozedur auslösen.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Fr 09.02.07 18:21 
user profile iconJayEff hat folgendes geschrieben:
Leider stimmt das so nicht, wie du das sagst, Karlson. Ich habe das komplette projekt übernommen, bearbeitet und andere Tastencodes versucht. Abgesehen davon, dass die RegisterHotkey-Funktion true zurückgibt, klappt garnichts. Die WM_HOTKEY Nachricht wird durch keine Tastenkombination gesendet. Egal, ob ich eine benutze, die mein anderes Programm erfolgreich registrieren konnte, oder einfach nach dem Zufallsprinzip welche ausprobiere.
Kurios: Per SendMessage wird die WM_HOTKEY-Prozedur ausgelöst.
user profile iconKarlson hat folgendes geschrieben:
Außerdem muss ich mich leider aus der Diskussion verabschieden, ich habe einen Laptop der über keinen Numblock verfügt, kann ergo nichts testen.

Du kannst gern versuchen, andere Hotkeys zu registrieren, da auch das nicht funktioniert :(


Werf mal das CoolTrayIcon raus. Ich kann in seinem Code problemlos Hotkeys registrieren und die kommen auch an.
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Fr 09.02.07 19:59 
user profile iconKarlson hat folgendes geschrieben:
Werf mal das CoolTrayIcon raus. Ich kann in seinem Code problemlos Hotkeys registrieren und die kommen auch an.

Nachdem du das CTI rausgeworfen hast? Echt? Du meinst, daran lags im endeffekt? das ist seltsam, da ich selbst schon 2 anwendungen mit CTI und hotkeys zum laufen gebracht, und deren code 1:1 in sein programm kopiert habe :gruebel:

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Fr 09.02.07 20:27 
Ich weiss nicht 100%ig das es an CTR liegt.

Aber ich hab die Komponente nicht daher wurden die Deklarationen bei mir automatisch entfernt.

Bei mir funktioniert das Hotkeymachen problemlos, bei euch nicht.

Abgesehen davon das ich D6, Regan D2005 und du D7 benutzen haben wir ansonsten wohl keine Unterschiede.

Daher gehe ich davon aus, das es irgendeinen konflikt gibt. Welchen oder Warum, keine Ahnung. Aber irgendwo daran muss es liegen.
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Fr 09.02.07 20:38 
Tut mir leid, am CTR scheint es nicht zu liegen - Ich habe es entfernt und dennoch keine Hotkey-Nachrichten erhalten.
Was kann da nur schief gehen :gruebel:

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.