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 :

Code: Alles auswählen

#WM_SIZE=5
#WM_CLOSE=16
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