If Button1.clicked = true then
lima-city → Forum → Programmiersprachen → Programmieren mit .NET & Mono
abfragen
anweisung
art
bestimmen
button
code
entsprechend reagieren
fokus
funktionieren
idee
knopf
leiser button
loslassen
maus
programm
steigen
tag
url
verstellen
zustand
-
Hallo liebe Community.
So wie es im Titel steht bräuchte ich es ungefährt xD
Ich weiß dass es für tag/button">Buttons die Click-Events gibt aber ich muss in einer If-Anweisung überprüfen, ob ein Button gerade geclicked wird.
Undzwar hab ich ich eine art Musikplayer programmiert und dort habe ich einen lauter und einen leiser button. Mit einem Click wird die Systemlauttärke um 1% angehoben oder abgesenkt. Ich will aber nicht 100mal auf den Button klicken müssen um von 0 auf 100% zu kommen sondern in einem Timer immer abfragen, ob der Button gerade geklickt wird. Dadurch könnte man den Button geklicked halten und die Laustärke würde von alleine steigen bis man nicht mehr klickt. Ist es also irgendwie möglich in Timer_Tick Event sowas abzufragen wie:
If Button1.clicked = true then
usw...
Vielen Dank
Beitrag zuletzt geändert: 22.12.2012 14:53:04 von andieo -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Auch wenn ich kaum etwas über VB weiß gibt es auf jeden Fall folgende Möglichkeit: du machst einen Event-Handler für "wenn der Knopf gedrückt wird" und einen für "wenn der Knopf losgelassen wird". In den beiden Event-Handlern änderst du eine Variable, die den Zustand des Knopfes enthält, also bei "knopf drücken" setzt du die Variable "knofpistgedrückt" auf true und bei "knopf loslassen" setzt du sie wieder auf false zurück. Die kannst du dann so wie du es im Threadtitel gewünscht hast abfragen.
-
Für Buttons gibt es meines Wissens nach keinen up/down event. Aber für die Maus gibt es den. In deinem Fall also: mousedown event abfangen, der einen timer startet. Im Timer machst du dann deine Lautstärkeänderung so lange, bis du einen mouseup event bekommst. Den lässt du den Timer wieder ausschalten und alles ist gut :)
-
Die Idee von hackyourlife ist einfach umzusetzen, das mach ich auch immer so (in Delphi):
im onClick-Event:
Also hin und her schalten des "Prüfmittels".if Button1.Tag=1 then Button1.Tag:=0 else Button1.Tag:=1;
Überall in deinem Programm kannst du dann prüfen, ob das Tag von Button1 auf 1 oder 0 steht und entsprechend reagieren.
Wenn es dir gedanklich hilft, kannst du anstelle des Tag eine globale Variable Button1clicked als Boolean definieren und diese im onClick-Event entsprechend setzen:
if Button1clicked=true then Button1clicked:=false else Button1clicked:=true;
-
Das mit dem OnClick dürfte glaub ich nicht wie gewoolt funktionieren, da der Eventhandler erst beim Loslassen ausgeführt wird (bin mir gerade aber nur zu 99% sicher). Die Idee von hackyourlife sollte funktionieren: OnMouseUp und OnMouseDown. Achte aber darauf, dass du OnMouseUp nicht auf den Button legst, da man ja theoretisch beim Loslassen nicht mehr auf dem Button sein könnte. Die Lautstärke sollte sich aber trotzdem nicht weiter verstellen.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage