Startseite › Foren › Deutsches LiveCode-Forum › Datagrid scrollen einstellen
Schlagwörter: Datagrid scrollen
- Dieses Thema hat 5 Antworten und 4 Teilnehmer, und wurde zuletzt aktualisiert vor 2 Jahre, 2 Monaten von
Jochen.
-
AutorBeiträge
-
-
Dezember 21, 2020 um 19:13 Uhr #25319
Hallo zusammen,
ich habe mich in den letzten Wochen damit beschäftigt, wie man ein Datagrid (Form) erstellt und programmiert.
Es soll auf einem Handy eine Liste angezeigt werden, die bei Bedarf scrollbar ist, ähnlich den Kontakten bei Whatsapp zum Beispiel. Klappt auch alles.Nur wenn man in der Liste scrollt, wird oft der Punkt ausgewählt an dem man den Finger weg nimmt (mouseUp halt)
Mein Code sieht so aus:
on mouseUp put the dghilitedline of group "DataGrid 20" of me into Taste end mouseUp
Kann man die Empfindlichkeit vom scrollen bzw auswählen einstellen?
Oder ist dghilitedline nicht das ideale?Wäre sehr dankbar für eure Hilfe
Schöne Grüße
Jochen -
Dezember 22, 2020 um 18:37 Uhr #25348
Hi Jochen,
das Problem ist, dass man auf dem Desktop mit dem Mausrad scrollt und mit Mauskklick = mouseUp auswählt. Auf dem Touchbildschirm ist das aber leider zusammengemixt. Wenn Du deine Daten nicht als Liste mit mobilePick darstellen kannst, empfehle ich einen extra Button unter dem DataGrid, der die entsprechende Aktion ausführt und das mouseup aus dem Cardscript zu entfernen.
Dann wäre der Code im Button einfach:
on mouseUp put the dghilitedline of group "DataGrid 20" into Taste end mouseUp
Wobei Du in diesem Fall nur die Nummer der Zeile bekommst, z.B. 9
Happy Coding
Torsten -
Dezember 24, 2020 um 01:35 Uhr #25380
Halo Torsten,
vielen Dank für deine Antwort. Ich hab es schon fast befürchtet. Ein Button zum Bestätigen der Auswahl finde ich nicht so schön. Ich veruch es mal weiter…
Trotzdem schonmal vielen Dank.
Ich wünsche euch allen schöne Weihnachten und bleibt gesund!
-
Januar 8, 2021 um 16:54 Uhr #25690
Hallo zusammen,
meint Ihr, dass man hier was mit mouseDoubleUp anstelle mouseUp erreichen würde?
Also scrollen ganz normal und bei Auswahl dann doppelt drauf tippen?
Und zweite Idee nach livecode Dictionary durchblättern: mouseStillDown
Verwendungsmöglichkeit im Dictionary schliesst alle Plattformen/OS ein.Ich würde mir vorstellen, dass man dann etwas länger auf der Auswahl bleiben muß, bevor der event handler ausgelöst wird. Es werden zwei Properties angegeben, mit denen man die Zeit wohl konfigurieren kann.
Viele Grüße,
Olaf -
Januar 9, 2021 um 10:11 Uhr #25703
Hallo,
Du merkst Dir im „mouseDown“ die Position (in einer script local variable). Im „mouseUp“ rufst Du nochmal die Position ab, und wenn die zu weit weg von der ersten ist, war es kein „Klick“, sondern ein „Swipe“.
Vereinfacht:
local lStartLoc -- die erste Mausposition on mouseDown put the mouseLoc into lStartLoc -- Mausposition merken end mouseDown on mouseUp put abs(the mouseH - item 1 of lStartLoc) into myHD -- horizontale Abweichung put abs(the mouseV - item 2 of lStartLoc) into myVD -- vertikale Abweichung if (myHD > 40) OR (myVD > 40) then pass mouseUp -- es ist ein Swipe else -- es ist ein Klick beep -- oder tu was nützliches :) end if end mouseUp
Variante:
Du merkst Dir im „mouseDown“ die „milliseconds“, und nur wenn bis zum „mouseUp“ eine bestimmte Zeit (300 ms?) verstrichen ist, ist es ein echter Klick.Viel Spaß!
-
Januar 11, 2021 um 15:41 Uhr #25734
Hallo „Axwald“,
vielen Dank für deine Lösungen. Ich habe mich für die Variante mit der Position entschieden und es klappt. Wenn man weiß wie, ist es manchmal ganz einfach…
Grüße
Jochen
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.