Die Aufgabe, den Doppelklick einzubauen, führt teilweise zu erheblichen Problemen. Aber auch schon das Bemerken eines einfachen Anklickens gelingt nur mit besonderen 'Tricks'. Zur Erinnerung: Ein Knopf ist angeklickt worden, wenn auf ihm zuerst die Maus gedrückt und dann wieder losgelassen wurde. (So reagieren Knöpfe in allen Windows-Anwendungen)
Das heißt aber, dass die Abfrage 'angeklickt' der Knöpfe in der Ereignisschleife der Anwendung nicht nur dann aufgerufen werden darf, wenn die Maus gerade losgelassen wird. Denn: So kann ein Knopf gar nicht merken, ob bei Ihm vorher die Maus gedrückt wurde. Also muss die Abfrage 'angeklickt' auch beim gedrücktem Mauszustand aufgerufen werden, wobei aber diese Anfrage in diesem Moment eigentlich gar nicht sinnvoll ist, da der Knopf ja erst beim Loslassen als gedrückt gilt.
Die Probleme haben ihre Ursachen im Wesentlichen in zwei Gründen:
Aus der Beschreibung der Problemursachen ergeben sich auch mögliche Lösungsansätze:
Diese Überlegungen führen zuerst einmal zu folgender Klassenstruktur und Aufgabenverteilung:
Noch nicht geklärt ist zu diesem Zeitpunkt unserer Überlegungen, wer für die entsprechenden Reaktionen auf das Drücken, Anklicken, Doppelklicken der Knöpfe zuständig sein soll. Deswegen gibt es auch (noch ?) keine Methoden für Anfragen an die Knöpfe. Wie nun auf Knopf-Ereignisse reagiert wird, folgt auf einer der nächsten Seiten.
Es empfiehlt sich hier aber zuerst einmal ein Blick auf ein
entsprechendes Projekt.
Das Projekt Knopf_Muehle_10_Knoepfe_melden_Ereignisse
kann hier
heruntergeladen werden.
In diesem Projekt werden noch keine
Mühlen-Reaktionen auf Knopfereignisse durchgeführt. Mit Hilfe der privaten
Methode 'anzeigen' können die Knöpfe allerdings die entsprechenden
Knopf-Ereignisse auf dem Bildschirm anzeigen.
Nicht ganz einfach ist die Programmierung der
Maus-Ereignis-Bearbeitungs-Methoden der Knöpfe. Hier empfiehlt sich ein Blick
in den Quellcode. Vielleicht wird er später an dieser Stelle noch weiter
erläutert.
Zur Themenübersicht | |
Zum Seitenanfang |
Zur vorigen Seite | Zur nächsten Seite |
© 2003 LK 12 If und G. Kubitz | Hannah-Arendt-Gymnasium, Lengerich |