Jac, 07.01.2008 17:37: Vor nicht einmal 24 Stunden wurde was dazu in der Babyklappe gepostet...
David Strutz, 07.01.2008 18:46: Zitat von ""Baby-Klappe"":
' XPSE-Quelltext erkannt.XXProfan (XPSE)
'Source wurde am 07.01.2008 in die Babyklappe auf XProfan.Com abgelegt:
//Mausradunterstützung per usermessages
const WM_MOUSEWHEEL=$20A
userMessages WM_MOUSEWHEEL
caseof WM_MOUSEWHEEL
if hiword(uwparam)==120 {
} else {
}
Thomas F., 07.01.2008 23:31: Ich kann suchen und lesen. Wenn ich c++,VB oder Xpse hätte umsetzen könnte, hätte ich nicht hier gepostet.
Dietmar Horn, 07.01.2008 23:44: Hallo Thomas,
Lasse doch über solchen "iF-Kauderwelsch-XPSE-Code" einfach mal XPSE drüberlaufen.
Zum Beispiel: "XPSE TEST.PRF" von der Kommandozeile (z.B. vom Total-Commander aus gestartet).
Danach schaust Du Dir die TEST.ENH im selben Ordner an und formatierst sie noch ggf. entsprechend Deiner Vorstellungen. Somit hast Du 1-2-fix reinen XProfan-Code.
Denn weil XPSE sein "Kauderwelsch" zum Interpretieren und Compilieren sowieso nur in XProfan-Syntax an den XProfan-Compiler übergeben kann, dürfte das kein Problem sein, solche Codes "abzufangen".
Aus genau diesem Grunde hatte ich für meinen XProfan-Manager ein Mini-Tool geschrieben und integriert, welches sowas 1-2-fix automatisch erledigt.
Gruss
Dietmar
David Strutz, 07.01.2008 23:45: Hier reicht lesen, die Konstante ist klar mit $20A beschrieben und es ist ersichtlich das diese als userMessage deklariert wird. Die userMessage kannste abfragen, und über den hiWord vom uWParam ermitteln ob hoch oder runter gedrückt wurde.
David Strutz, 07.01.2008 23:48:
' XPSE-Quelltext erkannt.XXProfan (XPSE)
{$cleq}
const wm_mousewheel=$20A
userMessages wm_mousewheel
cls
do {
waitInput
select uMessage
caseof wm_mousewheel
locate 1,1
if hiword(uwparam)==120 {
print getTickcount,"hoch "
} else {
print getTickcount,"runter"
}
endSelect
}
end
USERMESSAGES $20A
CLS
WHILE 1
WAITINPUT
SELECT %UMESSAGE
CASEOF $20A
LOCATE 1,1
IF HIWORD(&UWPARAM)=120
PRINT &GETTICKCOUNT,"hoch"
ELSE
PRINT &GETTICKCOUNT,"runter"
ENDIF
ENDSELECT
ENDWHILE
Dietmar Horn, 07.01.2008 23:53: Falsch:
Zitat: und hier die Kauderwelschvariante
Richtiger wäre:
" ... und hier die Non-Kauderwelschvariante ..."
iF scheint evtl. leicht genervt zu sein ...
Gruss
Dietmar 
Dietmar Horn, 07.01.2008 23:57: Das ist unfair, dass Du Dein Posting nachträglich editiert hast, so dass mein Zitat nun zusammenhanglos im Raum steht ... 
David Strutz, 07.01.2008 23:59: >> iF scheint evtl. leicht genervt zu sein ...
Keines Wegs. 
Thomas F., 08.01.2008 00:34: Danke für die Hilfe. Ich vermute auch, dass die letzten Serverprobleme iF aufgerieben haben könnten oder er hat es doch mit berlinerischer Gelassenheit weggesteckt.
@iF: sind die +/-120 verbindlich? Habe auch von +/-60 gelesen. In einem VB-Code erfolgt die Abfrage nur, ob wParam + oder - ist?
' Alle Messages durchlassen bis auf WM_MOUSEWHEEL!
If uMsg = WM_MOUSEWHEEL Then
' Mausrad wurde gedreht!
nValue = HiWord(wParam)
nEvent = LoWord(wParam)
x = LoWord(lParam)
y = HiWord(lParam)
If wParam < 0 Then
SendKeys "{down}"
Else
SendKeys "{up}"
End If
Exit Function
End If
Thomas F., 08.01.2008 02:26: @iF: bei den HIWORD(&UWPARAM)=120 wird ja vor und rück abgefragt. Könnte es sich bei HIWORD(&UWPARAM)=60 um das zweite Scrollrad = links/rechts handeln? Ich habe z.Z. noch keine derartige Maus zum Testen.
David Strutz, 08.01.2008 02:27: Nein bin nicht aufgerieben. 
Mit der 120 kann man sehen wie man will - msdn: The high-order word indicates the distance the wheel is rotated, expressed in multiples or divisions of WHEEL_DELTA, which is 120. A positive value indicates that the wheel was rotated forward, away from the user; a negative value indicates that the wheel was rotated backward, toward the user. [...] 
Ich habs mir hier also einfach gemacht.
Dies ist die Offlinevariante vom Thread [Abfrage Scrollrad Maus].
©2006 XProfan.Com