Startseite › Foren › Deutsches LiveCode-Forum › Datagrid mit Scroller › Antwort auf: Datagrid mit Scroller
Mai 19, 2019 um 22:18 Uhr
#14953
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