scrollen wie iPad ...?
Re: scrollen wie iPad ...?
ich fummle da noch etwas.... auch unter 4.5 läufts nicht ... irgendwas mit "RECT declared..." oder so...
hm... ich bastle auch schon an einer etwas "einfachereren" BASIC ähnlicheren Lösung, welche evtl funktioniert...
hm... ich bastle auch schon an einer etwas "einfachereren" BASIC ähnlicheren Lösung, welche evtl funktioniert...
PB 6.10LTs / Windows 11 64Bit (i9/32GB/ 1TB-SSD+4TB-HDD/3060GTX12GB) / 2x27" Multitouch
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
- NicTheQuick
- Ein Admin
- Beiträge: 8807
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: scrollen wie iPad ...?
Achja, unter Windows gibt es die Rect-Struktur schon. Dann mach einfach Suchen/Ersetzen im ganzen Quellcode von "Rect" nach "Rectangle" oder sowas.
Meine Version funktioniert, du solltest nur lernen die Fehlermeldungen der IDE besser zu intepretieren.
Da bin ich mal gespannt, wie du das noch einfacher machen willst.Then hat geschrieben:hm... ich bastle auch schon an einer etwas "einfachereren" BASIC ähnlicheren Lösung, welche evtl funktioniert...
Meine Version funktioniert, du solltest nur lernen die Fehlermeldungen der IDE besser zu intepretieren.
- PureLust
- Beiträge: 1145
- Registriert: 21.07.2005 00:02
- Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
- Wohnort: am schönen Niederrhein
Re: scrollen wie iPad ...?
Hi Then, ...Then hat geschrieben:ich fummle da noch etwas.... auch unter 4.5 läufts nicht ... irgendwas mit "RECT declared..." oder so...
wir haben bei uns im Lager sowie der Produktion viele Bildschirme mit Touchscreen-Bedienung im Einsatz.
Da die darauf laufenden Programmen natürlich auch verschiedene Listen enthalten (die momentan halt per Scrollbalken durchgescrollt werden können), ist das von Dir angedachte Scrollen per Touchbewegung echt eine interessante Idee.
Momentan setze ich für die Listen "normale" ListView-/ListIconGadgets ein.
Damit auch für unsere Produktionsmitarbeiter mit ihren "dicken Fingern" eine Bedienung möglich ist haben diese Listen z.Zt. halt extra großer Schrift.
Weiterhin verwende ich eine API-Tweak der sämtliche Schaltflächen von GUI-Controls (wie z.B. Scrollbalken, Pulldown-Buttons von Comboboxen, etc.) Systemweit vergrößert.
Da ich aber ohnehin vorhatte die "normalen" Listen demnächst durch ein ScrollAreaGadget() mit Images (ein Image für jede Zeile) zu ersetzen, werde ich mir auch mal Gedanken dazu machen das Scrollen im ScrollAreaGadget() statt mit einem Scrollbalken durch eine Touchbewegung zu realisieren (die iPhone-User von denen werden es lieben

Damit auch Du den Code von NTQ mal testen kannst hab ich ihn Dir mal so umgeschrieben, dass er auch bei Dir lauffähig sein sollte (im Grunde nur .RECT in .NTQRECT geändert, sowie bei Bedarf das fehlende Image erzeugt):
Code: Alles auswählen
; Code nachträglich gelöscht um Forum nicht unnötig voll zu stopfen.
; die o.g. Änderungen an NTQs Original-Code dürfte ja jeder bei Bedarf auch selber schaffen. ;)

PL.
Zuletzt geändert von PureLust am 18.05.2010 11:34, insgesamt 2-mal geändert.
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
Re: scrollen wie iPad ...?
Tia, und die die kein iPhone haben suchen dann verzweifelt n Scronbalken...
Also ich komme mit den Beispielcode gerade überhaupt nicht klar.
Ich kann klicken wie ich will, oder die maus bewegen wie ich will es scrollt nix ...
erst nachdem ich denke es passiert nix rauscht das Bild Seitwerts aus der anzeige
Ich stelle mich vermutlich zu blöd an, habe noch n ein iPhone in der Hand gehabt
Nichts destotrotz, würde ich euch hier gerne einer meiner Includes zur verfügung stellen, die die Mausabfragen etwas vereinfacht.
Mit diesen Proceduren kann (wie ich finde) einfacher abgefragt werden was die Maus (kurz stehenbleiben, lange stehenbleiben) gerade macht, oder auch der MausButton:
Erster Anschlag, Gedrpckt, Click, Doppelclick, usw.
Bei den If Abfragen dann immer mit dem & arbeiten, da es mehrere Events gleichzeitig geben kann.
(Doppelklick ist immer auch ein normaler Klick, erster anschlag ist auch schon "gedrückte Taste")
Hier ein kleines Beispiel:
Dieses Include arbeitet mit "echter" Zeit, somit ist die Doppelclickgeschwindigkeit immer gleich.
Also ich komme mit den Beispielcode gerade überhaupt nicht klar.
Ich kann klicken wie ich will, oder die maus bewegen wie ich will es scrollt nix ...
erst nachdem ich denke es passiert nix rauscht das Bild Seitwerts aus der anzeige

Ich stelle mich vermutlich zu blöd an, habe noch n ein iPhone in der Hand gehabt

Nichts destotrotz, würde ich euch hier gerne einer meiner Includes zur verfügung stellen, die die Mausabfragen etwas vereinfacht.
Code: Alles auswählen
; ScrMouseButtonEvent(Button)
#ScrMouse_FirstDown = %00000001
#ScrMouse_Down = %00000010
#ScrMouse_LongDown = %00000100
#ScrMouse_StepDown = %00001000
#ScrMouse_Click = %00010000
#ScrMouse_DoubleClick = %00100000
#ScrMouse_MultiClick = %01000000
; ScrMouseEvent()
#ScrMouse_Move = %00000000
#ScrMouse_TinyStop = %00000001
#ScrMouse_Stop = %00000010
#ScrMouse_LongStop = %00000100
; Time
#ScrMouse_TinyTime = 50
#ScrMouse_NormalTime = 250
#ScrMouse_LongTime = 750
; Verwaltung der Ereignisse
Structure ScrMouseButtonData
Time.i
DownTime.i
UpTime.i
Clicks.i
Event.i
EndStructure
Structure ScrMouse
x.f
y.f
EndStructure
Global Dim ScrMouseButtonData.ScrMouseButtonData(3)
Global ScrMouse.ScrMouse
Procedure ExamineScrMouse()
Protected Time = ElapsedMilliseconds()
Protected Button, SrcMouseButton
ExamineMouse()
; Mausbewegung
ScrMouse\x = MouseX()
ScrMouse\y = MouseY()
With ScrMouseButtonData(0)
\Event = #Null
If MouseDeltaX() Or MouseDeltaY()
\Time = Time
EndIf
If Time-\Time < #ScrMouse_TinyTime
\Event | #ScrMouse_Move
ElseIf Time-\Time <= #ScrMouse_NormalTime
\Event | #ScrMouse_TinyStop
ElseIf Time-\Time > #ScrMouse_NormalTime
\Event | #ScrMouse_Stop
If Time-\Time > #ScrMouse_LongTime
\Event | #ScrMouse_LongStop
EndIf
EndIf
EndWith
; Maustasten
For Button = 1 To 3
With ScrMouseButtonData(Button)
\Event = #Null
SrcMouseButton = MouseButton(Button)
If SrcMouseButton
\Event | #ScrMouse_Down
If Not \DownTime Or \UpTime
\Event | #ScrMouse_FirstDown
If Time-\DownTime < #ScrMouse_NormalTime
\Clicks + 1
\Event | #ScrMouse_DoubleClick
If \Clicks > 1
\Event | #ScrMouse_MultiClick
EndIf
Else
\Clicks = #Null
EndIf
\DownTime = Time
\UpTime = #Null
ElseIf Time-\DownTime > #ScrMouse_NormalTime
\Event | #ScrMouse_LongDown
If (Time-\Time) > #ScrMouse_TinyTime
\Time = Time
\Event | #ScrMouse_StepDown
EndIf
EndIf
\UpTime = #Null
Else
If Not \UpTime And \DownTime
\UpTime = Time
\Event | #ScrMouse_Click
EndIf
EndIf
EndWith
Next Button
EndProcedure
; Gibt eine kombination von Aktionen des Mausbuttons zurück
Macro ScrMouseButtonEvent(Button)
ScrMouseButtonData(Button)\Event
EndMacro
; Gibt die aktuelle Aktion der Maus zurück
Macro ScrMouseEvent()
ScrMouseButtonData(0)\Event
EndMacro
Erster Anschlag, Gedrpckt, Click, Doppelclick, usw.
Bei den If Abfragen dann immer mit dem & arbeiten, da es mehrere Events gleichzeitig geben kann.
(Doppelklick ist immer auch ein normaler Klick, erster anschlag ist auch schon "gedrückte Taste")
Hier ein kleines Beispiel:
Code: Alles auswählen
InitSprite() : InitKeyboard() : InitMouse()
OpenWindow(0, 0, 0, 800, 600, "SCREEN", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, 800, 600, 0, 0, 0)
Repeat
WindowEvent()
ClearScreen(0)
FlipBuffers()
ExamineScrMouse()
If ScrMouseButtonEvent(1) & #ScrMouse_FirstDown
Debug "Erster Anschlag"
EndIf
If ScrMouseButtonEvent(1) & #ScrMouse_Click
Debug "*Klick*"
EndIf
If ScrMouseButtonEvent(1) & #ScrMouse_MultiClick
Debug "Mehrfach Klick"
EndIf
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape) : End : EndIf
ForEver
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: scrollen wie iPad ...?
Es werden da wohl ein paar Events verschluckt, bzw in eine Queue gelegt. Im Grunde funktioniert der Code aber (ab und zuSTARGÅTE hat geschrieben:Ich kann klicken wie ich will, oder die maus bewegen wie ich will es scrollt nix ...
erst nachdem ich denke es passiert nix rauscht das Bild Seitwerts aus der anzeige![]()

Re: scrollen wie iPad ...?
N´Abend !
bin gerade daheim und habe meinen Code auf der Arbeit gelassen... bin auch schon ein ganzes Stück weiter gekommen. scrollen mit sanftem abbremsen klappt schon und ist eigentlich simples bASIC gewesen... mir fehlt nur noch, daß ich das Sprite an gleicher steller weiterscollen kann... aber auch das finde ich noch.
@NICK : es war ja auch keineswegs böse gemeint mit dem "etwas BASIC like" und so, ich finde Deinen Code ja auch wirklich gelungen... aber dennoch zu professionell
. ich muß das doch auch mal in ein paar Jahren noch verstehen können. so ein Super PB Freak bin ich nicht.
aber ich arbeite dran. Bei mir ist BASIC : IF ENDIF WHILE etc....
Vom LISTICON wurde mir abgeraten. Außerdem ist ein sanftes Scrollen nicht möglich. Das ganze Windows zu verändern, damit die dicken WurschtFinge touchen können ist mir zu viel. ich habe einen kleinen PC und einen 12" Touchscreen, welchen ich nur als MP3 Player im wohnzimmer nutze. Da soll kein anderes Programm laufen... nur MP3, also startet windows direkt mit dem Player (Hausfrauenkompatibel) 500 GB und fertig.
Mein derzeitiger Player ist zwar gut und auch schon per Finger bedienbar, aber nach 3 Bier trifft man die richtigen songs nicht mehr, also solls anders werden und das mit dem scrollen fand ich ganz toll !
ich poste morgen mal den Code in meinem Basic. Vielleicht kanns ja jemand (NICK
) entsprechen abändern, damit es beim scrollen komplett klappt.
schönen abend noch !
bin gerade daheim und habe meinen Code auf der Arbeit gelassen... bin auch schon ein ganzes Stück weiter gekommen. scrollen mit sanftem abbremsen klappt schon und ist eigentlich simples bASIC gewesen... mir fehlt nur noch, daß ich das Sprite an gleicher steller weiterscollen kann... aber auch das finde ich noch.
@NICK : es war ja auch keineswegs böse gemeint mit dem "etwas BASIC like" und so, ich finde Deinen Code ja auch wirklich gelungen... aber dennoch zu professionell


Vom LISTICON wurde mir abgeraten. Außerdem ist ein sanftes Scrollen nicht möglich. Das ganze Windows zu verändern, damit die dicken WurschtFinge touchen können ist mir zu viel. ich habe einen kleinen PC und einen 12" Touchscreen, welchen ich nur als MP3 Player im wohnzimmer nutze. Da soll kein anderes Programm laufen... nur MP3, also startet windows direkt mit dem Player (Hausfrauenkompatibel) 500 GB und fertig.
Mein derzeitiger Player ist zwar gut und auch schon per Finger bedienbar, aber nach 3 Bier trifft man die richtigen songs nicht mehr, also solls anders werden und das mit dem scrollen fand ich ganz toll !
ich poste morgen mal den Code in meinem Basic. Vielleicht kanns ja jemand (NICK

schönen abend noch !
PB 6.10LTs / Windows 11 64Bit (i9/32GB/ 1TB-SSD+4TB-HDD/3060GTX12GB) / 2x27" Multitouch
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
- PureLust
- Beiträge: 1145
- Registriert: 21.07.2005 00:02
- Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
- Wohnort: am schönen Niederrhein
Re: scrollen wie iPad ...?
Hi again, ...
wie gesagt hat mich das Thema interessiert (da ich's ja vermutlich selber bei uns einsetzen werde).
Also hab ich mich mal hingesetzt und was Kleines zusammengestrickt.
Das "Look & Feel" gefällt mir soweit ganz gut und ist eigentlich wie man es von einem normalen Touch-Handy kennt:
- Durch Touch und bewegen rauf/runter kann individuell gescrollt werden
- AutoScrolling starten durch Touch+Bewegen+Loslassen während der Bewegung
- AutoScrolling stoppen durch nochmaligen Touch
- Ein einfacher Touch (ohne Bewegung) bedeutet "anklicken" einer Zeile

Vielleicht gefällt's ja dem ein oder anderen.
Bei Fragen : Einfach fragen. 
Gruß, PL.
[Edit:]
[Edit2] Hab noch ein paar "Debug"s rausgelöscht.
[Edit3] Hab's nochmal ein wenig verfeinert um den Verlust des MBUp-Events beim Verlassen des Fensters abzufangen (siehe Post von STARGÅTE weiter unten).
wie gesagt hat mich das Thema interessiert (da ich's ja vermutlich selber bei uns einsetzen werde).
Also hab ich mich mal hingesetzt und was Kleines zusammengestrickt.
Das "Look & Feel" gefällt mir soweit ganz gut und ist eigentlich wie man es von einem normalen Touch-Handy kennt:
- Durch Touch und bewegen rauf/runter kann individuell gescrollt werden
- AutoScrolling starten durch Touch+Bewegen+Loslassen während der Bewegung
- AutoScrolling stoppen durch nochmaligen Touch
- Ein einfacher Touch (ohne Bewegung) bedeutet "anklicken" einer Zeile

Vielleicht gefällt's ja dem ein oder anderen.

Code: Alles auswählen
EnableExplicit
Define AnzIMG = 120
Define IMGWidth = 350
Define IMGHeight = 40
Dim image(AnzIMG-1)
Dim IGadget(AnzIMG-1)
Define n.i, Event.i, EGadget.i, Quit.l
Define MBDown.l = #False
Define MBYDown.i, MBXDown.i, SelectedLine.i
Define MBDownYScrollPos.l, LastYScrollPos.l, LastYMousePos.l
Define YScrollSpeed.f, ActAutoScrollMSec.i, LastAutoScrollMSec.i, ScrolledYDistance.f, AutoScrolling.l, ScrollStopped.l
Define MMoveYPos1.l, MMoveYPos2.l, MMoveMSec1.i, MMoveMSec2.i
Structure MMove
XPos.l
YPos.l
MSec.i
EndStructure
NewList MouseMove.MMove()
#WinMain = 0
#Scr_Gadget01 = 0
#STB_Main = 0
#PB_Event_MouseMove = 512
#PB_Event_LMBDown = 513
#PB_Event_LMBUp = 514
For n = 0 To AnzIMG-1
image(n) = CreateImage(#PB_Any, IMGWidth, IMGHeight)
If image(n)
If StartDrawing(ImageOutput(image(n)))
Box(0,0,ImageWidth(image(n)),ImageHeight(image(n)),$FFFFFF-(n%2)*$22222)
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(20,10,"Zeile "+Str(n+1),0)
StopDrawing()
EndIf
EndIf
Next n
If OpenWindow(#WinMain,100,100,400,600,"Touch-Scrolling")
If CreateStatusBar(#STB_Main, WindowID(#WinMain))
AddStatusBarField(WindowWidth(#WinMain))
StatusBarText(#STB_Main, 0, "Waiting for Touch")
EndIf
ScrollAreaGadget(#Scr_Gadget01,10,10,WindowWidth(#WinMain)-20, WindowHeight(#WinMain)-20-StatusBarHeight(#STB_Main), IMGWidth, AnzIMG*IMGHeight)
For n = 0 To AnzIMG-1
IGadget(n) = ImageGadget(#PB_Any,0,n*IMGHeight,IMGWidth,IMGHeight,ImageID(image(n)))
Next n
Quit = #False
Else
Quit = #True
EndIf
While Not Quit
If AutoScrolling
Event = WaitWindowEvent(AutoScrolling*2)
If AutoScrolling <> #True
If WindowMouseX(#WinMain) < GadgetX(#Scr_Gadget01) Or WindowMouseX(#WinMain) > GadgetX(#Scr_Gadget01)+GadgetWidth(#Scr_Gadget01) Or WindowMouseY(#WinMain) < GadgetY(#Scr_Gadget01) Or WindowMouseY(#WinMain) > GadgetY(#Scr_Gadget01)+GadgetHeight(#Scr_Gadget01)
Event = #PB_Event_LMBUp
ScrollStopped = #True
EndIf
EndIf
Else
Event = WaitWindowEvent()
EndIf
EGadget = EventGadget()
; Debug Str(Event)+" "+Str(EGadget)
Select Event
Case #PB_Event_CloseWindow
Quit = #True
Case #PB_Event_Gadget
ScrollStopped = AutoScrolling
AutoScrolling = #False
For n = 0 To AnzIMG-1
If EGadget = IGadget(n)
MBDown = #True
MBXDown = WindowMouseX(#WinMain)
MBYDown = WindowMouseY(#WinMain)
MBDownYScrollPos = GetGadgetAttribute(#Scr_Gadget01,#PB_ScrollArea_Y)
SelectedLine = n
LastYScrollPos = MBDownYScrollPos
LastYMousePos = MBYDown
StatusBarText(#STB_Main, 0, "You've touched Line "+Str(n+1))
Break
EndIf
Next n
Case #PB_Event_MouseMove
If MBDown
SetGadgetAttribute(#Scr_Gadget01,#PB_ScrollArea_Y, LastYScrollPos-WindowMouseY(#WinMain)+LastYMousePos)
LastElement(MouseMove())
AddElement(MouseMove())
MouseMove()\XPos = WindowMouseX(#WinMain)
MouseMove()\YPos = WindowMouseY(#WinMain)
MouseMove()\MSec = ElapsedMilliseconds()
If ListSize(MouseMove()) > 20
FirstElement(MouseMove())
DeleteElement(MouseMove(),1)
EndIf
AutoScrolling = 20
StatusBarText(#STB_Main, 0, "Touch-Scrolling ...")
EndIf
Case #PB_Event_LMBUp
If MBDown
MBDown = #False
If Abs(MBYDown - WindowMouseY(#WinMain)) < 4 And ListSize(MouseMove()) < 4 And Not ScrollStopped
; Eine Zeile wurde angeklickt !!!
Debug "Zeile "+Str(SelectedLine+1)+" wurde angeklickt."
StatusBarText(#STB_Main, 0, "===> You've selected Line "+Str(SelectedLine+1)+ "<===")
Else
AutoScrolling = #False
ScrollStopped = #False
If ListSize(MouseMove())
FirstElement(MouseMove())
MMoveYPos1 = MouseMove()\YPos
MMoveMSec1 = MouseMove()\MSec
LastElement(MouseMove())
MMoveYPos2 = MouseMove()\YPos
MMoveMSec2 = MouseMove()\MSec
YScrollSpeed = 0
If MMoveMSec1 <> MMoveMSec2
YScrollSpeed = (MMoveYPos1 - MMoveYPos2) / (MMoveMSec2 - MMoveMSec1)
EndIf
If Abs(YScrollSpeed) > 0.1 And ElapsedMilliseconds() - MMoveMSec1 < 200
LastAutoScrollMSec = ElapsedMilliseconds()
LastYScrollPos = GetGadgetAttribute(#Scr_Gadget01,#PB_ScrollArea_Y)
ScrolledYDistance = 0
AutoScrolling = #True
EndIf
EndIf
EndIf
ClearList(MouseMove())
EndIf
EndSelect
If AutoScrolling = #True
ActAutoScrollMSec = ElapsedMilliseconds()
If ActAutoScrollMSec <> LastAutoScrollMSec
ScrolledYDistance = ScrolledYDistance + (ActAutoScrollMSec - LastAutoScrollMSec) * YScrollSpeed
SetGadgetAttribute(#Scr_Gadget01,#PB_ScrollArea_Y, LastYScrollPos + ScrolledYDistance)
YScrollSpeed = YScrollSpeed * 0.98 - Sign(YScrollSpeed)/1000
LastAutoScrollMSec = ActAutoScrollMSec
StatusBarText(#STB_Main, 0, "AutoScrolling at Speed: "+StrF(YScrollSpeed*1000,1)+" Pixel / Second")
If Abs(YScrollSpeed) < 0.04 Or LastYScrollPos + ScrolledYDistance < 0 Or LastYScrollPos + ScrolledYDistance > GetGadgetAttribute(#Scr_Gadget01,#PB_ScrollArea_InnerHeight)-GadgetHeight(#Scr_Gadget01)
YScrollSpeed = 0
AutoScrolling = #False
StatusBarText(#STB_Main, 0, "AutoScrolling has stopped.")
EndIf
EndIf
EndIf
Wend

Gruß, PL.
[Edit:]
VIELEN DANK !!!Kiffi hat geschrieben:Top!

[Edit2] Hab noch ein paar "Debug"s rausgelöscht.
[Edit3] Hab's nochmal ein wenig verfeinert um den Verlust des MBUp-Events beim Verlassen des Fensters abzufangen (siehe Post von STARGÅTE weiter unten).
Zuletzt geändert von PureLust am 18.05.2010 00:10, insgesamt 5-mal geändert.
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
Re: scrollen wie iPad ...?
Top!PureLust hat geschrieben:Also hab ich mich mal hingesetzt und was Kleines zusammengestrickt.

Ich denke, dass diese Art der Bedienung in Zeiten von Touchscreens
auch im Desktop-Bereich eine immer wichtigere Bedeutung bekommt.
Grüße ... Kiffi
a²+b²=mc²
Re: scrollen wie iPad ...?

Jup, mit diesem Beispiel komm ich auch klar!
Obwohl halt nun das Problem gibt, wenn man die Maus gedrückt hält, und außerhalb des fnesters loslässt.
Dann wird dieses Event nicht registriert.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- PureLust
- Beiträge: 1145
- Registriert: 21.07.2005 00:02
- Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
- Wohnort: am schönen Niederrhein
Re: scrollen wie iPad ...?
Jo, Problem ist mir natürlich bekannt.STARGÅTE hat geschrieben:Obwohl halt nun das Problem gibt, wenn man die Maus gedrückt hält, und außerhalb des fnesters loslässt.
Dann wird dieses Event nicht registriert.
Würde sich aber (meines Wissens nach) nur durch API umgehen lassen.
Da mir aber die Portabilität meiner Programme sehr wichtig ist und die Reaktion der Liste auch nach dem "Verschlucken" des Events noch einigermaßen nachvollziehbar oder eben "nicht wirklich dramatisch" ist, ist mir persönlich das so lieber als das Ganze dafür "Windows-only" zu machen.
Auch wird so eine Liste (zumindest bei uns) ja nur als ein Teil eines Vollbild-Fensters eingesetzt - ein "rausfahren" aus dem Fenster (und somit der Verlust des Events) sollte somit garnicht erst eintreten.
[Edit] Ok, hab mich dann doch nochmal dran gegeben und wohl eine Möglichkeit gefunden den Verlust des MBUp-Events auch ohne API (einigermaßen sauber) abzufangen (geänderter Code - siehe oben).
Hoffe, Dir gefällt's so besser.

Ach ja ... würde mich mal interessieren ob's auch auf Linux und/oder Macs läuft wie es sollte.
Feedback wäre diesbezüglich also sehr willkommen.

[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)