| |
|
|
Rainer Hoefs | Hallo,
habe mir gestern die XProfanX4s gekauft. Der Hauptgrund war das schönere SpinEdit-Control.
Nun stelle ich fest, daß man darin den Wert nicht mehr mit dem MouseWheel einstellen kann.
Kennt jemand eine Lösung?
Und dann noch eine Frage: Ich möchte im SpinEdit keine Eingabe über die Tastatur zulassen.
Der Wert soll nur über die UpDown-Arrows oder über das MouseWheel eingestellt werden können.
Habe schon in den Messages gesucht, aber nichts gefunden. (Vielleicht auch mit einer falschen Idee gesucht.)
Für Hilfe immer dankbar Rainer
[OFFTOPIC]Hab mal den Titel etwas ergänzt Jörg [/OFFTOPIC] |
|
|
| |
|
|
|
H.Brill | Daß das Mausrad wieder geht, wird ziemlich schwierig.
Die andere Sache, daß es nur über die Pfeile geht, ist machbar.
Hab ich auch nicht gewußt, sondern ausprobiert :
SendMessage(spin, $00CF, 1, 0)
Einfach das Editfeld des Spins auf READ_ONLY setzen.
Siehe Messages für Editfelder.
Wie man so schön sagt :
VERSUCH MACHT KLUCH !!!!!!!!!!!!!!! |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 10.03.2018 ▲ |
|
|
|
|
Rainer Hoefs | |
|
| |
|
|
|
H.Brill | Ich habe etwas gesucht und könnte dir sowas anbieten :
Declare Handle spin, Long ende
Window 600, 400
spin = Create("SpinEdit",%HWnd,"0;0;100",10,10,48,24)
SendMessage(spin, $00CF, 1, 0)
UserMessages $20A, $010
ende = 0
WhileNot ende
WaitInput
Select %UMessage
CaseOf $20A
If HiWord(&UWPARAM) = 120
If Val(GetText$(spin)) < 100
SetText spin, Str$(Val(GetText$(spin)) + 1)' hoch
EndIf
Else
If Val(GetText$(spin)) > 0
SetText spin, Str$(Val(GetText$(spin)) - 1)' runter
EndIf
EndIf
CaseOf $010' wm_close
ende = 1
EndSelect
EndWhile
End
Nun geht beides. Einziges Manko : Das Mausrad geht auch im Hauptfenster, also auch außerhalb des Editfeldes vom SpinEdit. Sowas müßte man dann mit SubClassing abfangen. Aber vielleicht genügt dir das ja schon. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 10.03.2018 ▲ |
|
|
|
|
H.Brill | Da es mir keine Ruhe ließ, jetzt auch mit SubClassing :
Declare Handle spin, Long ende
Window 600, 400
spin = Create("SpinEdit",%HWnd,"0;0;100",10,10,48,24)
SendMessage(spin, $00CF, 1, 0)
UserMessages $20A, $010
ende = 0
SubClassProc
If SubClassMessage(spin, $20A)
If HiWord(&sWParam) = 120
If Val(GetText$(spin)) < 100
SetText spin, Str$(Val(GetText$(spin)) + 1)' hoch
EndIf
Else
If Val(GetText$(spin)) > 0
SetText spin, Str$(Val(GetText$(spin)) - 1)' runter
EndIf
EndIf
Set("WinProc", 0)
EndIf
EndProc
SubClass spin, 1
WhileNot ende
WaitInput
/*
Sonstige Abfragen
*/
Case %UMessage = $10 : ende = 1
EndWhile
SubClass spin, 0
End
Wie es scheint, erreicht die MouseWheel - Nachricht nicht nur das Hauptfenster, sondern auch die anderen Controls.
Wenn man mehrere SpinEdits hat, ist diese Methode besser. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 10.03.2018 ▲ |
|
|
|