Entwickler-Ecke
Sonstiges (Delphi) - Button nicht per Enter anklicken
Pandax3 - Mi 30.03.11 21:37
Titel: Button nicht per Enter anklicken
Hallo,
ich habe einen Button und ein Label, dass die Clicks zählt wie oft ich auf den Button gedrückt habe ;D
jetzt möchte ich aber, dass man mit der Maus auf den Button drückt und nicht mit der Enter Taste.
Also wenn man die Enter Taste gedrückt hält, bekommt man ca 100 cklicks in 4 sekunden - das möchte ich verhindern ;)
Also kann man es irgendwie so einstellen, dass man den Button nicht per Enter "aktivieren" kann?
Danke :D
Dude566 - Mi 30.03.11 22:06
Was mir spontan einfällt, wäre bei jedem Klick den Focus wieder auf ein anderes Element zu setzen. Kann es gerade nicht testen, probier es doch mal so. ;)
Pandax3 - Mi 30.03.11 22:10
Ich habe nur 1 Button in der Form ;D
und auf ein Label kann ich den Focus doch nicht richten, oder?
HenryHux - Mi 30.03.11 22:13
Wenns dirty sein soll mach doch nen invisible Button oder Edit Feld dem du den Focus gibst.
Ich glaube du kannst sogar deiner ganzen Form den Focus geben.
Einfach mal ausprobieren.
Lg
EDIT: Der ganzen Form den Focus geben, klappt. Aber Martoks Methode scheint ein bisschen besser =)
Martok - Mi 30.03.11 22:14
Du könntest einen TSpeedButton statt eines TButtons verwenden. Der kann keinen Fokus erhalten, damit stellt sich das Problem gar nicht ;-)
Pandax3 - Mi 30.03.11 22:50
danke an alle ^^
Edit:
Ich kann den Focus an einen andere Button geben, der muss aber sichtbar sein.
An eine Form kann ich den Focus nicht geben. Jetzt hab ich allerdings nen Button ohne Funktion in der Form - auch net so schön xD
Wie machst du das, wenn du der ganzen Form den Focus gibst?
Quake User - Do 31.03.11 00:08
- Du solltest den Nutzer Deiner Programme nicht Deine Bedienweise aufzwingen. Eine Bedienung mit Tastatur muss auch möglich sein.
- Beschreib genauer was Du realisieren möchtest. Dann könnne wir Dir helfen.
Moderiert von
Martok: Komplettzitat des OP entfernt
Dude566 - Do 31.03.11 00:17
Für mich hörte es sich so an als arbeite er an einem Klickspiel wo es nicht sinnvoll ist einen Bug zu haben durch den man sich einen Vorteil verschaffen kann.
Deshalb wird er vermutlich das Drücken des Buttons durch Enter verhindern wollen. ;)
Quake User - Do 31.03.11 00:34
Dude566 hat folgendes geschrieben : |
Für mich hörte es sich so an als arbeite er an einem Klickspiel wo es nicht sinnvoll ist einen Bug zu haben durch den man sich einen Vorteil verschaffen kann.
Deshalb wird er vermutlich das Drücken des Buttons durch Enter verhindern wollen. ;) |
In dem Fall sollte er einfach prüfen, ob ENTER gedrück wurde und das als Fehler ausgeben. Oder?
hirschv - Do 31.03.11 16:09
Wie wäre es wenn Du statt auf OnEnter einfach auf OnMouseDown reagierst?
Pandax3 - Do 31.03.11 16:10
ja, es soll ein Klickspiel werden ;)
aber das mit OnKeyPress oder OnKeyDown geht nicht. Er führt die aktion den Button zu drücken trotzdem aus :D
Wenn ich bei OnKeyDown auf VK_delete eine showmessage lege, dann zeigt er mir das Fenster, falls der Button im Focus ist - wenn ich bei OnKeydown VK_return darauf habe zeigt er mir kein Fenster bei showmessage, obwohl der Button im Focus ist ;O
Er ignorit also dann den Befehl Vk_Return - und die ButtonClicks gehn sehr schnell in die Höhe :D Wie Dude es bereits gesagt hat, man könnte es als Bug im Spiel bezeichnen xD
weiß einer was ich falsch mache? :D
---
Moderiert von
Narses: Beiträge zusammengefasst---
hirschv hat folgendes geschrieben : |
Wie wäre es wenn Du statt auf OnEnter einfach auf OnMouseDown reagierst? |
wie meinst du das?
---
Moderiert von
Narses: Beiträge zusammengefasst---
So ich habe jetzt einen Speed Button für den Button genommen und schon klappt alles ;D
War wohl die einfachste Lösung.
Danke Martok und auch Danke an alle anderen :D
Quake User - Fr 01.04.11 01:06
Pandax3 hat folgendes geschrieben : |
So ich habe jetzt einen Speed Button für den Button genommen und schon klappt alles ;D
War wohl die einfachste Lösung.
Danke Martok und auch Danke an alle anderen :D |
Das ist eher ein "Workaround".
thepaine91 - Fr 01.04.11 13:43
Ich verstehe nicht so ganz warum man dann nicht einfach auf onMouseDown statt onKeyDown o. onClick reagiert....
Dann noch die Abfrage ob mb_left und das wars.
hirschv - Mo 04.04.11 09:03
Hallo,
ich meinte das so wie es Nicolas auch vorgeschlagen hat. Ich hatte das mal getestet und es scheint zu funktionieren. Eventueller Nachteil ist, das keine Tastaturbefehle akzeptiert werden (Der Button reagiert zwar visuell, es wird aber kein Event ausgelöst, bzw. behandelt), was aber in Deinem Sinne sein sollte ;-)
Gruß
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!