Antwort auf: Datagrid mit Scroller

Startseite Foren Deutsches LiveCode-Forum Datagrid mit Scroller Antwort auf: Datagrid mit Scroller

#14953
Klaus Major
Administrator

    OK, hier das geänderte Skrtipt, siehe meine Kommentare.
    Bitte mal testen, ich kann das mangels Handy etc. nicht.

    ## Wichtig!!!
    local sScrollerID
    
    ## In diesen Variablen merken wir uns den Scroll des NATIVEN Scrollers 
    ## und vorsichtshalber auch den Scroll des Datagrids. 
    local letzterscroll_scroller
    local letzterscroll_datagrid
    
    on openCard
       scroller_create
    end openCard
    
    on closeCard
       scroller_delete
    end closeCard
    
    on scroller_create
       local tScrollerRect, tContentRect
       set the vScroll of grp "listA" to 0
       ##Only create a scroller on a mobile device
       if the environment is not "mobile" then exit scroller_create
       ##Set the area of the scroller
       put the rect of group "dgRouten" into tScrollerRect
       ##Set the area of the content to be scrolled
       put 0,0,(the dgFormattedWidth of group "dgRouten"),(the dgFormattedHeight of group "dgRouten") into tContentRect
       ##Create the scroller control
       mobileControlCreate "scroller", "listScroll"
       put the result into sScrollerID
       ##Set the properties of the scroller
       mobileControlSet "listScroll", "rect",tScrollerRect
       mobileControlSet "listScroll", "contentRect",tContentRect
       mobileControlSet "listScroll", "visible",true
       mobileControlSet "listScroll", "scrollingEnabled",true
       mobileControlSet "listScroll", "vIndicator",true
       
       ## Lokale Variablen sind erst einmal leer, wenn die App startet.
       ## Daher können wir Folgendes machen:
       if letzterscroll_scroller = EMPTY then
          put 0 into letzterscroll_scroller
          
          ## Wenn diese Variable leer ist, ist die andere es auch!
          put 0 into letzterscroll_datagrid      
       end if
       
       ## Hier dann die Wiederherstellung des nativen Scrollers
       mobileControlSet "listScroll", "vscroll", letzterscroll_scroller
       
       ## Und des Datagrids. Ob das wirklich nötig ist, kann ich nicht sagen, 
       ## musst Du mal ausprobieren, indem Du diese Zeile mal aukommentierst
       set the dgVScroll of grp "dgRouten" to letzterscroll_datagrid
    end scroller_create
    
    on scroller_delete
       if the environment is not "mobile" then exit scroller_delete
    
      
       ## DAS meinte ich eigentlich damit, was Du Dir merken solltest 
       ## und wieder herstellen solltest:
       put mobileControlGet(sScrollerID, "vScroll") into letzterscroll_scroller
       
       ## Zur Sicherheit auch mal merken, siehe unten...
       put the dgVScroll of grp "dgRouten" into letzterscroll_datagrid
    
       ## Jetzt löschen
       mobileControlDelete sScrollerID
    end scroller_delete
    
    on scrollerDidScroll pHScroll, pVScroll
       set the DGvScroll of group "dgRouten" to pVScroll
       set the DGSelectedLine of group "dgRouten" to empty
    end scrollerDidScroll
    
    on mouseRelease
       set the dgHilitedLines of group "dgRouten" to empty
    end mouseRelease