Seite 1 von 1

WebGadget

Verfasst: 14.02.2005 19:03
von saimen
HAb das Thema schonmal angeschnitten. Aber jetzt nochmal so das jeder auch mal ausprobieren kann.
Und zwar:
Bei der Auswahl eines Elements aus dem ListIconGadget wird das WebGadget refresht, der Focus bleibt dabei immer auf dem ListIconGadget.
Nachdem ich jedoch einmal auf das Webgadget gelickt habe, und dann wieder eine Auswahl vornehme wird bei jedem Refresh der Focus aufs Webgadget gesetzt. Man kann sich so nciht mit den Pfeiltasten im ListGadget bewegen.
Wie lässt sich das verhinder?

Wenn sich vielleicht noch keiner damit auseinandergesetzt hat, wie kann ich da vorgehnen um das Problem zu lösen?
Gibts vielleicht über WinAPI möglichkeiten?

Code: Alles auswählen

If OpenWindow(1, 0, 0, 724, 549, #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered , "Worship Datenbank")
    CreateGadgetList(WindowID()) 
    WebGadget(2, 300, 35, 420, 600, "http://www.pure-board.de")
    ListIconGadget(3, -2, -2, 270, 600, "Titel", 200, #PB_ListIcon_HeaderDragDrop|#PB_ListIcon_MultiSelect|#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
    For a=1 To 10
        AddGadgetItem(3,-1,"test "+Str(a))
    Next
EndIf

Repeat
EventID = WaitWindowEvent()
;Debug Str(GetFocus_())

Select Eventid
    Case #PB_Event_Gadget
       Select EventGadgetID()
            Case 3 : SetGadgetState(2, #PB_Web_Refresh)
       EndSelect
EndSelect

Until EventID=#PB_Event_CloseWindow 
End

Verfasst: 14.02.2005 22:11
von Lars
Ohne das jetzt getestet zu haben, würde ich einfach mal sagen, ein [c]SetFocus_(GadgetID(3))[/c] sollte auf Windows genügen.

Verfasst: 15.02.2005 08:55
von saimen
Das hab ich schon versucht. Aber nachdem ich den Focus auf Gadtet 3 gesetzt habe springt er gleich wieder aufs WEbgadget. Das interessante ist ja, dass wenn du mal den Debug einschaltest

Code: Alles auswählen

;Debug Str(GetFocus_())
wirst du feststellen, dass, nachdem du das Webgadget angeklickt hast, ständig ein WindowEvent abgefangen wird.[/quote]

Verfasst: 15.02.2005 22:08
von Lars
Ist zwar extrem unelegant, aber eine bessere Lösung habe ich jetzt auf
Anhieb nicht gefunden.

Code: Alles auswählen

  If GetFocus_() <> GadgetID(3)
    SetFocus_(GadgetID(3))
  EndIf