Position Focus in ScrollareaGadget ermitteln

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Daffy0815
Beiträge: 390
Registriert: 15.06.2005 00:44
Wohnort: 65719 Hofheim
Kontaktdaten:

Position Focus in ScrollareaGadget ermitteln

Beitrag von Daffy0815 »

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?
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Benutzeravatar
Daffy0815
Beiträge: 390
Registriert: 15.06.2005 00:44
Wohnort: 65719 Hofheim
Kontaktdaten:

Re: Position Focus in ScrollareaGadget ermitteln

Beitrag von Daffy0815 »

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
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Antworten