Habe mal Zwischendurch die Lösung mit SetGadgetData getestet und bin bei "Scrollerei" gleich auf die nächste "Merkwürdigkeit" gestoßen:
Die Routine zum scrollen sieht dann so aus:
Code: Alles auswählen
Procedure Scroll(NumScrollArea.i, NumGadget.i)
;
Select EventType()
Case #PB_EventType_Focus
SetGadgetAttribute(NumScrollArea.i, #PB_ScrollArea_Y, GetGadgetData(NumGadget.i) - GetGadgetData(NumScrollArea.i) / 2)
Case #PB_EventType_Change
Case #PB_EventType_LostFocus
EndSelect
;
EndProcedure
Data von NumGadget.i enthält die absolute Position des Eingabegadgets innerhalb des Scrollareas
Data von NumScrollArea.i enthält die Höhe des Scrollareas
Das funktioniert mit StringGadget´s und ButtonImageGadget´s einwandfrei.
Mit Comboboxen funktioniert es jedoch nicht.
Bei diesen wird der EventTyp Focus nicht erzeugt !!!
Nimmt man die Abhängigkeit vom Eventtyp aus der Funktion heraus dann funktioniert das scrollen auch mit Comboboxen aber
das hat dann bei ButtonImageGadgets den hässlichen Efekt das diese beim Berühren des Touchscreens bzw. Anklicken mit der Maus
erst einmal "wegspringen".
Gruß
Daffy