Autor Beitrag
Stread
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 188

Win 7
Delphi XE
BeitragVerfasst: Fr 23.04.10 14:16 
Hi.
ich habe ein Programm welches mir die Mauskoordinaten auch außerhalb der aktuellen Form anzeigt. Per Tastendruck werden die aktuellen in ein Edit Fenster übernommen. Bei der Form in MouseOnEnter hat ein Edit Feld immer den Focus, so dass es prüfen kann ob und welche Taste gedrückt wird.

Wenn ich nun auf eine andere Stelle des Desktops klicke wird die Form inaktiv (sie ist immer im Vordergrund)

Wie erreiche ich, dass wen ich mit der Maus über die Form gehe oder eine Taste drücke, diese wieder aktiv wird und meine Tastendrücke annimmt?
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Fr 23.04.10 17:38 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
  
   if GetAsyncKeyState(VK_LBUTTON)<0 then
     Edit1.Text:='click'
   else
     Edit1.Text:='no click'


Das ganze in nen Timer oder so packen. Wenn du >0 machst, bekommst du auch mit, wenn der User seit dem letzten Aufruf von GetAsyncKeyState geklickt hat, aber jetzt nicht mehr klickt.

Hier die Konstanten aus der Hilfe:
F1 hat folgendes geschrieben:

Constants

VK_LBUTTON (01)
Left mouse button

VK_RBUTTON (02)
Right mouse button

VK_CANCEL (03)
Control-break processing

VK_MBUTTON (04)
Middle mouse button (three-button mouse)

VK_XBUTTON1 (05)
Windows 2000/XP: X1 mouse button

VK_XBUTTON2 (06)
Windows 2000/XP: X2 mouse button

- (07)
Undefined

...//hier kommen dann Tasten


Direkt ein Event zu bekommen, wenn irgendwo hin geklickt wurde, geht wohl nicht so ohne weiteres, höchstens über komplizierte Hooks.

//Edit: achso, ich seh grad du willst Tastatur-Tasten-Drücke :mrgreen:
Selbes Prinzip, statt VK_LBUTTON dann einfach die Taste nehmen (die gleichen Werte die du auch im OnKeydown /OnKeyPress kriegst)

F1 hat folgendes geschrieben:

(41)
A key

(42)
B key

(43)
C key

(44)
D key

(45)
E key

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
Stread Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 188

Win 7
Delphi XE
BeitragVerfasst: Sa 24.04.10 10:32 
Wie das mit den Tastatur Drücken funktioniert weiß ich, allerdings muss dazu meine Form immer den Focus haben. Wenn ich auf etwas anderes klicke wird die dunkel-blaue Leiste oben so milchig. Dann nimmt er keine Tastendrücke mehr an.
Nun möchte ich aber dass er dann auch noch auf meine Tastendrücke reagiert.
Funktioniert das mit einem Timer? Soll der überprüfen ob eine Taste gedrückt wurde? und Geht das auch bei nicht aktivierter Form?

Danke