Klick auf Button verhindern
Übersicht

![]() |
pileBetreff: Klick auf Button verhindern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo, also ich habe in meinem Programm mehrere Buttons
diese werden meistens so ausgelößt: Code: [AUSKLAPPEN] If ImagesCollide(button#,koordinateX,koordinateY,maus,mx,my)=1 and Mousedown(1)=1 then button1press=1 Soweit alles klar, und es funktioniert auch, ABER mein Problem istwenn ich jetzt irgendwo in den freien Raum klicke, dann die Maus gedrückt halte und den Mauszeiger dann auf einen Button drauf ziehe, wird der Button angeklickt. So soll es aber nicht sein. Wie kann ich das machen das der Button nur dann geklickt wird wenn sich die Maus über dem Button befindet? Erschwerend kommt noch hinzu, dass wenn ich den Button anklicke, er also eingedrückt ist, und bei gedrückter Mausstaste, den Mauszeiger in den freien Raum ziehe, soll der Button dann auch nicht angeklickt sein, aber wenn ich ihn (die Maustaste immernoch gedrückt) wieder auf den Button ziehe, soll der Button wieder eingedrückt sein. Erst wenn sich der Mauszeiger über dem Button befindet und ich den Mausknopf drücke soll er engedrückt werden, und auch erst nachdem ich die Maustaste loslasse wenn sich der Zeiger Über dem Button befindet , soll etwas ausgelöst werden. Ok, also eigentlich ziemlich komplizierter Vorgang. Ich bekomme zwar diese Funtionen einzeln hin, aber alle auf einmal schaff ich nicht. Ich hoffe meine Beschreibung kann nachvollzogen werden. Wer nicht weis was ich meine kann das z.B. mal mit einem Button in seinem Browser ausprobieren, der "Startseitebutton" eignet sich gut dafür, denn genau so sollen meine Buttons funktionieren. |
||
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238% |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
benutz MouseHit stat MouseDown.
~Edit~ Achtung(!) : ist noch nicht getestet ! |
||
![]() |
Jo0oker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Versuch mal wenn die maus den Hintergrund berührt das dann der Wert geändert wird.
lg Jo0oker |
||
Tehadon, das kostenlose 3D RPG
www.tehadon.de http://www.blitzforum.de/worklogs/14/ Das Abenteuer wird beginnen! |
![]() |
pile |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Crack93 MouseHit funktioniert gar nicht, keine Ahnung warum ?!
Zitat: Versuch mal wenn die maus den Hintergrund berührt das dann der Wert geändert wird. Was meinst du damit? Die Position und Größe der Buttons ändert sich jenachdem wie man das Fenster, in dem sie sich befinden verändert. Daher gibt es auch keinen Hintergrund, bzw. mal gibt es Einen, mal wird Er durch die Buttons oder Anderes verdeckt. |
||
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238% |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
er meint glaub ich den Code: [AUSKLAPPEN] If mx < deineButtonPositionX If my < deineButtonPositionY If ImagesCollide(...usw...) If MouseHit(/Down)(1) Machdasunddas EndIf EndIf EndIf EndIf |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
pile |
![]() Antworten mit Zitat ![]() |
---|---|---|
Crack93 hat Folgendes geschrieben: er meint glaub ich den Code: [AUSKLAPPEN]
If mx < deineButtonPositionX If my < deineButtonPositionY If ImagesCollide(...usw...) If MouseHit(/Down)(1) Machdasunddas EndIf EndIf EndIf EndIf Hä? Wenn sich die Maus außerhalb des Buttons befindet (mx/my < buttonX/buttony) aber gleichzeitig auf dem Button befindet (If ImagesCollide(...usw...) ) wie soll das denn gehen? Und was genau soll dann passieren ( Machdasunddas??)? Sorry,das hilft mir leider wenig weiter. Ich habe ja geschrieben das es sehr komplizierte Vorgänge sind, und die lassen sich doch schlecht mit "Machdasunddas" erklären. |
||
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238% |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da musst du nur das reintragen, was du dann machen möchtes (zb. sollder dann zu einer Sprunmarke gehen, eine function aufrufen oder einfach nur was printen ![]() |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
DerHase |
![]() Antworten mit Zitat ![]() |
---|---|---|
Crack und Jo0oker, warum antwortet Ihr wenn Ihr gar keinen Plan habt ?
Kuck Dir mal das an und pass es Deinem Code an, ganz nützlich ist es nen Button Type zu bauen ![]() Code: [AUSKLAPPEN] Graphics 640, 480, 0, 2
SetBuffer (BackBuffer()) ShowPointer() While Not KeyHit(1) MouseHit1 = MouseHit(1) If buttonpressed Color 123,0,23 Else Color 0,234,1 End If Rect 30, 30, 90, 30, 1 If RectsOverlap(30, 30, 90, 30, MouseX(), MouseY(), 1, 1) If MouseHit1 buttonpressed = 1 End If If Not MouseDown(1) buttonpressed = 0 End If Else buttonpressed = 0 End If If buttonpressed = 1 For u = 0 To 200 Color Rand(255), Rand(255), Rand(255) Rect Rand(200, 400), Rand(200, 400), 10, 10 Next End If Flip:Cls Wend EDIT: War ein kleiner Fehler drinne, jetzt klappt´s aber. |
||
- Zuletzt bearbeitet von DerHase am Mo, Jan 22, 2007 0:55, insgesamt einmal bearbeitet
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich stimme dem Hasen zu. Antwortet nur wenn ihr wirklich Antwort wisst. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
pile |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Der Hase, danke für deinen Code. Ich stimme dir zwar zu, dass Leute die denken "och das könnte schon funktionieren, irgendwie... vieleicht... , ich poste einfach mal das erst Beste was mir einfällt" lieber erstmal nicht posten, sondern vorher mal Testen ob es denn so klappt wie sie denken, oder überhaupt nichts dazu schreiben (zumal wohl überhaupt nicht darauf eingegangen wurde was ich wollte, bzw. es wurde nicht verstanden). Allerdings, funktioniert dein Beispiel leider auch nicht so ganz, ich meine selbst jetzt wo du es sogar verbessert/berichtigt hast. Der Button wird zwar dann erst angeklickt wenn sich die Maus, zum Zeitpunkt des Klicks, auf dem Button befindet, aber etwas Entscheidenes fehlt noch, nämlich, dass man, wenn man die Maustaste gedrückt lässt und den Zeiger vom Button zieht und dann wieder auf den Button zurückzieht (Maustaste ist immernoch gedrückt) der Button wieder gedrückt ist (in deinem Fall erscheint bei dir so ein farbiges Muster das anzeigt das der Button gedrückt wird). Außerdem fehlt noch, wenn man die Maus auf dem Button wieder los läst, das irgend etwas passiert, z.B. Programmende.
Wie ich schon geschrieben habe: Einzeln gesehen sind die Funktionen kein Problemm, aber alle zusammen, ist recht schwer und nicht zu unterschätzen. Heute habe ich es aber selber geschaft, ich weiß zwar noch nicht so ganz wie ich den Quelltext anschaulich mache, damit ich ihn hier reinstellen kann, aber wenn ich das habe, werde ich ihn hier veröffentlichen. |
||
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238% |
- Zuletzt bearbeitet von pile am Mi, Jan 24, 2007 16:54, insgesamt 2-mal bearbeitet
![]() |
Pdd |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe dieses Problem auch oft gehabt und weis, das es 2 Lösungen gibt:
1. die von DerHase 2. mit Flushmouse() Arbeiten! (FUnktioniert allerdings nur, wenn man es richtig einsetzt, ansonsten wird nähmlich garnicts mehr erkannt, also vorsicht!) |
||
Lieber Apfel als Birne. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group