Hallo, habe (leider) schon wieder eine Frage:
Folgendes Problem
============
In einem Scrollareagadget (nur Y) befinden sich untereinander mehrere Dutzend StringGadgets in denen Eingaben gemacht werden können.
Beim Bewegen des Focus mit "TAB" bzw. "Shift-TAB" bewegt sich der Eingabefocus natürlich irgendwann aus dem sichtbaren Bereich des Scrollareas heraus.
Nun müsste mittels SetgadgetAttribute -> #PB_Scrollarea_Y der Scrollbalken so geschoben werden, dass das Stringgadget welches gerade den Focus hat wieder sichtbar ist (am besten natürlich in der Mitte des Scrollareas).
Ist es möglich die Position des Focus bzw. des gerade aktiven Gadgets abzufragen?
Position Focus in ScrollareaGadget ermitteln
Position Focus in ScrollareaGadget ermitteln
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Widerstand ist zwecklos - Sie werden emuliert
Re: Position Focus in ScrollareaGadget ermitteln
Nun, dann beantworte ich die Frage mal selbst!
Das Problem steckte eigentlich nur in der ein wenig inkonsequenten Benennung der Schlüsselworte von PureBasic.
Ich suchte nach einer Funktion in der Art von "GetGadgetPosition...." da ja eigentlich alle Abfragen mit "Get" beginnen.
Warum man hier "GadgetY" verwendet hat ist mir schleierhaft.
Die Lösung sieht also so aus:
If EventType() = #PB_EventType_Focus
SetGadgetAttribute(#ID_ScrollArea, #PB_ScrollArea_Y, GadgetY(#ID_StringGadget) - #Hoehe_ScrollArea/2)
EndIf
Das Problem steckte eigentlich nur in der ein wenig inkonsequenten Benennung der Schlüsselworte von PureBasic.
Ich suchte nach einer Funktion in der Art von "GetGadgetPosition...." da ja eigentlich alle Abfragen mit "Get" beginnen.
Warum man hier "GadgetY" verwendet hat ist mir schleierhaft.
Die Lösung sieht also so aus:
If EventType() = #PB_EventType_Focus
SetGadgetAttribute(#ID_ScrollArea, #PB_ScrollArea_Y, GadgetY(#ID_StringGadget) - #Hoehe_ScrollArea/2)
EndIf
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Widerstand ist zwecklos - Sie werden emuliert