WebGadget

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
saimen
Beiträge: 172
Registriert: 26.01.2005 10:44
Wohnort: Passau
Kontaktdaten:

WebGadget

Beitrag 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
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Beitrag 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.
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
Benutzeravatar
saimen
Beiträge: 172
Registriert: 26.01.2005 10:44
Wohnort: Passau
Kontaktdaten:

Beitrag 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]
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Beitrag 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
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
Antworten