Seite 1 von 1
Fenstergröße Webgadget
Verfasst: 05.12.2012 20:22
von ProgOldie
Hallo,
eigentlich eine einfache Frage, an deren Lösung ich aber nun schon einige Stunden hänge.
Ich habe in einem Fenster ein Webgadget. Wenn ich nun das Fenster maximiere etc., soll die WebGadgetgröße angepasst werden. Das Ereignis dazu klappt.
Nur: Wie änder man die Abmessungen eines vorhandenen WebGadgets. Bei setGadgetAttribut findet man dazu leider nichts.
in der Hilfe.
Dank vorab!
ProgOldie
Re: Fenstergröße Webgadget
Verfasst: 05.12.2012 20:39
von HeX0R
So wie bei jedem anderen Gadget auch, durch ResizeGadget()
Re: Fenstergröße Webgadget
Verfasst: 05.12.2012 20:41
von NicknameFJ
Hi,
Code: Alles auswählen
If OpenWindow(1,10,10,1000,600,"TEST")
WebGadget(10,10,10,800,400,"www.purebasic.fr/german")
ResizeGadget(10,10,10,500,300)
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Grüße
NicknameFJ
EDIT: Mist, HeXor war schneller
Re: Fenstergröße Webgadget
Verfasst: 06.12.2012 09:16
von computerfreak
Jetzt passts sich an die Fenstergröße an
Wenn du die Demo hast :
der Code
Code: Alles auswählen
If OpenWindow(1,10,10,1000,600,"TEST",#PB_Window_SizeGadget|#PB_Window_MaximizeGadget)
WebGadget(10,10,10,800,400,"www.purebasic.fr/german")
ResizeGadget(10,10,10,500,300)
Repeat
Select WindowEvent()
Case #WM_SIZE
ResizeGadget(10,0,0,WindowWidth(1),WindowHeight(1))
Case #WM_CLOSE
End
EndSelect
ForEver
EndIf
Grüße , Computerfreak
Re: Fenstergröße Webgadget
Verfasst: 06.12.2012 09:54
von RSBasic
@computerfreak
Warum API-Konstanten?
Dafür gibt es PB-Konstanten:
#WM_SIZE -> #PB_Event_SizeWindow
#WM_CLOSE -> #PB_Event_CloseWindow
Re: Fenstergröße Webgadget
Verfasst: 06.12.2012 10:01
von Kiffi
@computerfreak:
für WM_SIZE und WM_CLOSE gibt es native PureBasic-Äquivalente: #PB_Event_SizeWindow
und #PB_Event_CloseWindow (funktioniert auch in der Demo). Und WindowEvent() kann man
in diesem Fall durch WaitWindowEvent() ersetzen.
Code: Alles auswählen
#Window = 0
#Webgadget = 0
If OpenWindow(#Window, #PB_Ignore, #PB_Ignore, 800, 600, "TEST", #PB_Window_SizeGadget | #PB_Window_MaximizeGadget)
WebGadget(#Webgadget, 0, 0, 0, 0, "http://www.purebasic.fr/german")
Repeat
Select WaitWindowEvent()
Case #PB_Event_SizeWindow
ResizeGadget(#Webgadget, #PB_Ignore, #PB_Ignore, WindowWidth(#Window), WindowHeight(#Window))
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
EndIf
Grüße ... Kiffi
Re: Fenstergröße Webgadget
Verfasst: 06.12.2012 12:04
von ProgOldie
Hallo,
da habe ich den Wald vor lauter Bäumen nicht gesehen. Danke für die Hilfen.
Wen's interessiert: Ich wollte einen kleinen Browser, der bei Betätigung eines Buttos (saveButton) die aktuelle URL weiter verarbeitet. Hier meine Lösung:
Code: Alles auswählen
;Zum Weiterbearbeiten einer URL (ProgOldie)
Global URLGad
Procedure saveURL(WebAdr.s)
; Hier wird später noch die Webadresse verarbeitet
Debug WebAdr
ProcedureReturn #True
EndProcedure
Procedure NavigationCallback(Gadget, Url$)
; wird vom WebGad aufgerufen
SetGadgetText(URLGad,Url$)
;schreibt die aktuelle URL in die URLZeile
ProcedureReturn #True
EndProcedure
Procedure fitGadgets(win.i,Gad1,Gad2,Gad3)
;passt Größe und ggf. Position der Gadgets an die aktuelle Fenstergröße an.
;win: aktuelles Browserfenster; Gad1=WebGad, Gad2=URLGad, Gad3=saveButton
ResizeGadget(Gad1,#PB_Ignore,#PB_Ignore,WindowWidth(win)-10,WindowHeight(win)-40)
ResizeGadget(Gad2,#PB_Ignore,#PB_Ignore,WindowWidth(win)-180,20)
ResizeGadget(Gad3,WindowWidth(win)-140,#PB_Ignore,60,20)
EndProcedure
browseWin=OpenWindow(#PB_Any, 0, 0, 600, 400, "WebGadget", #PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget| #PB_Window_ScreenCentered)
URLGad=StringGadget(#PB_Any,10,10,400,20,"",#PB_Text_Border)
AddKeyboardShortcut(browseWin, #PB_Shortcut_Return, 15) ;Zum Abfangen von RETURN im URLGadget
saveButton=ButtonGadget(#PB_Any,WindowWidth(browsewin)-140,10,60,20,"save URL")
WebGad=WebGadget(#PB_Any, 10, 40, 580, 350, "http://www.purebasic.com")
SetGadgetAttribute(WebGad, #PB_Web_NavigationCallback, @NavigationCallback())
Repeat
Event=WaitWindowEvent()
EvGad=EventGadget()
EvType=EventType()
Select Event
Case #PB_Event_Menu ; wurde in dem Fenster die RETURN-Taste gedrückt?
Select EventMenu()
Case 15 ; war es das Shortcut mit der Nr 15?
If GetActiveGadget() = URLGad
SetGadgetText(WebGad,GetGadgetText(URLGad))
EndIf
EndSelect
Case #PB_Event_MaximizeWindow
fitGadgets(browsewin,WebGad,URLGad,saveButton)
Case #PB_Event_SizeWindow
fitGadgets(browsewin,Webgad,URLGad,saveButton)
Case #PB_Event_CloseWindow
CloseWindow(browseWin)
Case #PB_Event_Gadget
Select EvGad
Case saveButton ;wurde der saveURL-Button betätigt?
saveURL(GetGadgetText(URLGad))
EndSelect
EndSelect
Until Event=#PB_Event_CloseWindow