Auto-Aktualisierung im Browser

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

Auto-Aktualisierung im Browser

Beitrag von Sunny »

Ich bin grade dabei mir einen Browser mit Auto-Aktualisierung zu basteln.
Der Browser soll die geladene Internetseite so oft aktualisieren, wie es in einem StringGadget eingegeben wird (oh man... hoffentlich versteht das jemand :lol: )...

Er soll allerdings nach jeder Aktualisierung warten bis die Internetseite fertig geladen wurde.

Also mein Code sieht bis jetzt so aus:

Browser

Code: Alles auswählen

OpenWindow(0,100,100,500,560,"Browser",#PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
TextGadget(0,10,10,50,20,"http://",#PB_Text_Right|#PB_Text_Border)
StringGadget(1,60,10,200,20,"")
ButtonGadget(2,270,10,60,20,"Go To >>")
WebGadget(3,10,40,480,480,"http://www.google.de")

ButtonGadget(4,340,10,60,20,"Refresh")
TextGadget(5,410,10,10,20,"x")
StringGadget(6,430,10,50,20,"1")  ;Anzahl der Refresh's
TextGadget(7,10,530,200,20,"Refresh Nr. 0")

Repeat

event0=WaitWindowEvent()

  If event0=#PB_Event_Gadget
  
    Select EventGadget()

;__________________________URL_wechseln_____________________________    
      Case 2
        adresse$=GetGadgetText(1)
        SetGadgetState(3,#PB_Web_Refresh)
        SetGadgetText(3, "http://"+adresse$)  ;Browser soll nur "http"-Seiten anzeigen

;_________________Autorefresh_mit_angegebenem_Wert__________________        
      Case 4
      anzahl.l=Val(GetGadgetText(6))
      For k=0 To anzahl.l

        If GetGadgetAttribute(3,#PB_Web_Busy)
;________________Fehlender_Code_____________________________________
        Else
          SetGadgetState(3,#PB_Web_Refresh)
          SetGadgetText(7,"Refresh Nr. "+Str(k))
        EndIf
        
      Next
    
    EndSelect
  
  EndIf

Until event0=#PB_Event_CloseWindow
CloseWindow(0)
End
Ich weiß nun leider nicht was ich in Zeile 33 (Kommentar: Fehlender_Code) machen muss, damit die Seite erst fertig läd und dann eine neu Aktualisierung macht.(ohne die Variable k zu erhöhen)

Vieleicht muss der Code ja auch etwas umgeschrieben werden...

ich weiß nich mehr weiter, über Hilfe würde ich mich sehr freuen.
Benutzeravatar
Blackskyliner
Beiträge: 532
Registriert: 28.07.2005 00:54
Wohnort: /home/Blackskyliner/

Beitrag von Blackskyliner »

ich Würde EventWindow() Benutzen, damit meine Folgende erklärung Funktioniert:

Du macht dir ne Variable wie buttonClicked.b und diese fragst du in der Main Loop ab ob die #True ist... Wenn die True ist, dann fragst du ab ob der Grade Busy ist oder nicht... wenn er nicht busy sein sollte dann einmal einen State Senden dass er reloaden soll und eine Variable erhöhen, z.B. k.l oder so. Wenn k.l = GetGadgetText() von den Wiederholungen entspricht dann k=0 setzen, buttonClicked auf #False setzen und fertig... Und um auf meinen nächsten Satz vorzugreifen den Button und das Textfeld wieder Aktivieren


Wenn der auf den Button Reload klick, dann den Button und das Textfeld mit DisableGadget() sperren.

Hoffe das hilft dir weiter... Ist nur schnell geschrieben da mein Essen gleich fertig ist und ich nachsehn muss <) Deswegen Rechtschreibfehler wahrscheinlich vorhanden ;)
Keine meiner Antworten ist endgültig, es kann passieren, dass ich den so eben geposteten Beitrag noch mehrmals ändere, um Doppelposts zu umgehen.
_________________
Purebasic Windows 7 x64 & Linux (Ubuntu 10.04LTS) 4.50[x64|x86] Nutzer
_________________
Projekte: YAED - Yet another Event Dispatcher
Antworten