Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Form immer aktivieren
Stread - Fr 23.04.10 14:16
Titel: Form immer aktivieren
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 - Fr 23.04.10 17:38
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
|
Stread - 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
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!