Datagrid scrollen einstellen

Startseite Foren Deutsches LiveCode-Forum Datagrid scrollen einstellen

Schlagwörter: 

Ansicht von 5 Antwort-Themen
  • Autor
    Beiträge
    • #25319
      Jochen
      Teilnehmer

      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

    • #25348
      Torsten
      Teilnehmer

      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

    • #25380
      Jochen
      Teilnehmer

      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!

    • #25690
      Olaf
      Teilnehmer

      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

    • #25703
      Axwald
      Teilnehmer

      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ß!

    • #25734
      Jochen
      Teilnehmer

      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

Ansicht von 5 Antwort-Themen
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.