WebGadget refresht nicht immer

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

WebGadget refresht nicht immer

Beitrag von Kukulkan »

Hallo,

ich benutze eine lokale HTML Datei die ich im Browser anzeige (PB4.51, x86):

Code: Alles auswählen

; set browser to display header
SetGadgetText(#webDisplayMessage, "file:///" + strHeaderFile.s) ; browser read from temp
Repeat
    
    Event.l = WaitWindowEvent()    
    GadgetID.l  = EventGadget()
    EventType.l = EventType()
    
    If Event.l = #PB_Event_Gadget
        ; lot of event handling code
    EndIf

    Delay(10)
Until Event.l = #PB_Event_CloseWindow
Unter Windows XP klappt es immer problemlos. Unter Windows 7 bekomme ich von Kunden den Report, dass das Browserfenster sporadisch einfach leer ist (weiss oder grau) und erst neu gezeichnet wird, wenn Sie das Fenster in der Grösse ändern (da mache ich dann ResizeGadget() mit dem Browser-Gadget). Das ist natürlich lästig. Ich hab's schon mit InvalidateRect_(hWin,0,1) und UpdateWindow_(hWin) versucht, aber es brachte keinen Erfolg.

Bei manchen tritt es gar nicht auf, bei anderen sporadisch und bei wieder anderen fast immer. Aber alles sind Windows 7 Rechner. XP scheint immer zu funktionieren. Eine gemeinsamkeit hab ich leider noch nicht gefunden. Manche haben IE8 und manche IE9, keine erkennbare Gemeinsamkeit).

Was ist da los und wie kann ich das beheben?

Grüße,

Kukulkan
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: WebGadget refresht nicht immer

Beitrag von Kiffi »

versuch mal sowas hier:

Code: Alles auswählen

SetGadgetText(#webDisplayMessage, "file:///" + strHeaderFile.s + "?rnd=" + Str(ElapsedMilliseconds()) ; browser read from temp
sofern es sich bei Dir um ein Cache-Problem handelt, kannst Du es mit dem rnd-Parameter umgehen.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Re: WebGadget refresht nicht immer

Beitrag von Kukulkan »

Hallo Kiffi,

ich hab kein Cache-Problem mit dem laden des HTML. Das ganze Gadget (incl. Rahmen) wird nicht gezeichnet! Sobald ich es resize, wird der Inhalt problemlos angezeigt. Ich habe also kein Problem mit den Inhalten sondern damit, dass das Gadget auf meinem Fenster nicht gezeichnet wird.

Dein Trick ist gut, wenn man was mit gleichem Namen erneut nachladen möchte und der Cache des Browsers glaubt er habe das doch schon. Das ist aber nicht mein Problem hier.

Ich hab schon gedacht, dass das Laden des IE in das Gadget vielleicht Probleme macht?

Kukulkan
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: WebGadget refresht nicht immer

Beitrag von Kiffi »

noch ein Versuch: WaitWindowEvent() mit einem Timeout versehen?

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Re: WebGadget refresht nicht immer

Beitrag von Kukulkan »

Hallo,
noch ein Versuch: WaitWindowEvent() mit einem Timeout versehen?
Das bringt leider nichts. Ich hab 10 und 100 eingegeben. Ohne Erfolg. Ich hab ein virtuelles Windows 7, auf dem das Problem manchmal auftritt. Hier ist es aber gleich wieder passiert :(

Ich hab auch schon in einem Thread nach Ablauf von 1 Sekunde nochmal versucht einen Refresh mit InvalidateRect_(WindowID(#webDisplayMessage),0,1) und UpdateWindow_(WindowID(#webDisplayMessage)) zu machen. Das brachte aber nichts (evtl, weil ich aus dem Thread das gar nicht kann?).

Ach ja, im Thread ein

Code: Alles auswählen

SetGadgetState(#webDisplayMessage, #PB_Web_Refresh) ; refresh the content in webbrowser
aufzurufen ist auch keine gute Idee. Schmiert ab (aus dem Thread geht das wohl nicht).

Grüße,

Kukulkan
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: WebGadget refresht nicht immer

Beitrag von Kiffi »

auch wenn es mit dem eigentlichen Problem nichts zu tun hat:
Wieso hast Du noch ein zusätzliches Delay(10) in Deiner Event-Schleife?

Grüße ... Kiffi
a²+b²=mc²
The Shark
Beiträge: 37
Registriert: 03.03.2011 00:03

Re: WebGadget refresht nicht immer

Beitrag von The Shark »

Na wenns nach nem Resizegadget immer funktioniert, machst halt nach jedem Refresh

Code: Alles auswählen

resizegadget(#webDisplayMessage,breite,höhe-1)
resizegadget(#webDisplayMessage,breite,höhe)
vielleicht gehts auch mit nem einzelnen resizegadget.
Die Lösung ist zwar alles andere als elegant, aber wenns dann funktioniert ...
Bild
Bild
Antworten