Mahlzeit TclTk_Erfahrener,
@EKKi:
also die Kombination:
onmousedown
onmousemove
onmouesupkann ich nicht einsetzen, da die Maus dabei ja vom Button runterbewegt würde und das Programm somit nicht mehr wissen würde welchen Knopf der Benutzer gerade bedienen will.
Sicher kannst Du das. Wer sagt denn, dass Du die Eventhandler an den Button hängen musst - häng sie ans Dokument, dann bekommst Du immer alle Mausklicks und Bewegungen mit. Dass Du dann natürlich diejenigen, die Du erwartest und benötigtst, herausfiltern musst, versteht sich von selbst ...
MfG,
EKKi
»»
Hallo EKKi
Also was ich gelernt habe ist, dass deine Kombination funktioniert, aber halt nicht auf die Weise, wie ich es mir zuerst vorgestellt habe:
Man drückt Maustaste über einem Button und solange man diese gedrückt hält und irgendwo in der Anwendung rumfährt wird der Wert verändert, bis man die Maustaste loslässt. Daher auch der Einwand, dass ich ja dann den Button verlasse. Auf dieses Weise wäre das nicht sehr intuitiv gewesen. =)
Wenn man mal eine klare Vorstellung von etwas hat, dann kommt man net so schnell drauf, dass ein anderer es ganz anders meint.
Und in meiner Vorstellung sah ich Leute ihre Mäuse traktieren, wie einen Joystick zu California Games Zeiten. :-)
Ich hatte vergessen, dass das moveevent sowieso eine Art polling hat, d.h. auch wenn ich die Maus nicht bewege, wird die Position abgefragt und somit ein Event ausgelöst. Somit kann ich das schon an den Button (das Polygon) hängen.
mousedown --> setzt einen Flag der Änderungen erlaubt
mousemove --> löst die Änderung aus, abhängig von welchem Objekt er ausgelöst wird
mouseup,mouseout --> nimmt den Flag wieder zurück
Das einzige Problem könnte hier der Polling-Intervall sein, wenn dieser sich auf verschiedenen Systemen zu sehr unterscheidet.
Aber das wird sich dann schnell zeigen.