Hi,
ich habe ein kleines Programm wo ich die Mausposition mit einem Tastensruck in ein Edit Feld speichern kann. Ich drücke Strg + Q und die aktuelle Mausposition wird in dem nächsten freien Edit Feld gespeichert.
Das Problem ist wenn ich ein Mausklick(oder Doppelklick) mache und dann wieder Strg + Q drücke ist das nächste Edit Feld was dran wäre leer und das übernächste hat dann den Focus und erst beim nochmaligen betätigen der Tasten werden die Zahlen wieder korrekt übernommen. Wenn dann nochmal ein Klick kommt ist es egal, dann stimmt es auch wieder.
Auch wenn ich am Anfang bevor ich das allererste mal die beiden Tasten drücke wohinklicke geht es die ganze Zeit normal weiter.
Wenn ich mein Problem schlecht beschrieben haben sollte kann ich gerne noch ein Bild hinzufügen
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43:
| . . protected procedure hot1key(var msg:TMessage); message WM_HOTKEY; . .
procedure TForm12.hot1key(var msg:TMessage); begin if (msg.LParamLo=MOD_CONTROL) and (msg.LParamHi=81) then begin
if EditX1.Focused then begin EditX1.Text:= IntToStr(MousePosition.X); EditY1.Text:= IntToStr(MousePosition.Y); end;
if EditX2.Focused then begin EditX2.Text:= IntToStr(MousePosition.X); EditY2.Text:= IntToStr(MousePosition.Y); end;
if EditX3.Focused then begin EditX3.Text:= IntToStr(MousePosition.X); EditY3.Text:= IntToStr(MousePosition.Y); end; . . . if EditX1.Text='' then begin EditX1.SetFocus; end else
Self.Perform(WM_NEXTDLGCTL, 0, 0); end;
end; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm12.FormCreate(Sender: TObject); begin
RegisterHotKey(handle, 1, MOD_CONTROL ,81);
end; |