WebGadget-Prozedur als Thread - wie?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
stab
Beiträge: 92
Registriert: 24.02.2006 16:09
Computerausstattung: 286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Wohnort: Hardt
Kontaktdaten:

WebGadget-Prozedur als Thread - wie?

Beitrag von stab »

Hallo,

gestern dachte ich noch, es liegt an den 28° im Büro, ich komme aber auch heute Morgen nicht weiter.

Ich versuche nach folgendem Muster eine Prozedur mit WebGadget als Thread laufen zu lassen.

folgendes funktioniert (Syntax also OK):

Code: Alles auswählen

Procedure _zeigeGadget(dummy)
  WebGadget(10, 0, 0, 1000, 600, "www.google.de")
EndProcedure

OpenWindow(0,0,0,1000,600,"Window",#PB_Window_ScreenCentered)

_zeigeGadget(0)

Repeat
  Select WaitWindowEvent(1) 
    Case #PB_Event_Menu
      End
  EndSelect
ForEver
dies funktioniert auch:

Code: Alles auswählen

Procedure _zeigeGadget(dummy)
  ;WebGadget(10, 0, 0, 1000, 600, "www.google.de")
  TextGadget(2,10,10,100,20,"Text")
  Repeat
    Delay(1000)
  ForEver
EndProcedure

OpenWindow(0,0,0,1000,600,"Window",#PB_Window_ScreenCentered)

CreateThread(@_zeigeGadget(),0)

Repeat
 Select WaitWindowEvent(1) 
     Case #PB_Event_CloseWindow    
      End 
 EndSelect

ForEver
aber dies nicht:

Code: Alles auswählen

Procedure _zeigeGadget(dummy)
  WebGadget(10, 0, 0, 1000, 600, "www.google.de")
  ;TextGadget(2,10,10,100,20,"Text")
  Repeat
    Delay(1000)
  ForEver
EndProcedure

OpenWindow(0,0,0,1000,600,"Window",#PB_Window_ScreenCentered)

CreateThread(@_zeigeGadget(),0)

Repeat
 Select WaitWindowEvent(1) 
     Case #PB_Event_CloseWindow    
      End 
 EndSelect

ForEver
Kann mir da jemand helfen?
Danke!
Paul sagt: "Max lügt."
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."

Wer lügt hier wirklich und wer sagt die Wahrheit?

_________________________________________

286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: WebGadget-Prozedur als Thread - wie?

Beitrag von NicTheQuick »

Du kannst keine einzelnen Gadgets in einem Thread laufen lassen. Gadgets müssen außerdem immer alle im Hauptprogramm erzeugt und geändert werden. Wichtig ist nur, dass irgendwo im Hauptprogramm ein (Wait)WindowEvent() immer auf Events reagieren kann.

Dass es mit dem TextGadget() im Thread funktioniert, ist mehr oder weniger Zufall oder Glück.
Bild
Benutzeravatar
stab
Beiträge: 92
Registriert: 24.02.2006 16:09
Computerausstattung: 286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Wohnort: Hardt
Kontaktdaten:

Re: WebGadget-Prozedur als Thread - wie?

Beitrag von stab »

Stimmt, alle anderen Gadgets laufen auch nicht :D
Danke
Paul sagt: "Max lügt."
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."

Wer lügt hier wirklich und wer sagt die Wahrheit?

_________________________________________

286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: WebGadget-Prozedur als Thread - wie?

Beitrag von NicTheQuick »

Ich bin trotzdem neugierig, was du bezwecken wolltest. Ich meine, es lohnt sich ja nicht ein Gadget in einem Thread zu erzeugen und dort dann zu warten oder den Thread direkt wieder zu verlassen. Das Erstellen eines Gadgets geht ja innerhalb von Millisekunden und macht man in der Regel einmalig, das muss man ja nicht auslagern.
Oder was genau hattest du vor?
Bild
Benutzeravatar
stab
Beiträge: 92
Registriert: 24.02.2006 16:09
Computerausstattung: 286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Wohnort: Hardt
Kontaktdaten:

Re: WebGadget-Prozedur als Thread - wie?

Beitrag von stab »

Hallo NicTheQuick,

habe erst jetzt gesehen, dass noch eine Frage von Dir offen war. Sorry.

Ich erweitere gerade meine Software, die eine Art Infoboard realisiert. Läuft an ein paar Schulen.
Dort öffne ich bis zu 4 Fenster gleichzeitig und es arbeiten jede Menge Threads im Hintergrund. Konvertieren von PDF's, Fotos, Laufband etc.
Jetzt kommt auf Wunsch ein Webgadget dazu. http://forums.purebasic.com/german/view ... de#p362974
Habe festgestellt, dass zeitweise das Laden der Webseiten im Gadget ziemlich lange dauert, zumindest erstmalig, und wollte mit dem Thread verhindern, dass der Progammfluss unterbrochen wird.
Von daher das Webgadet im Thread laufen lassen. <)

Aber wie oben schon erwähnt lag es eher an den 28° in meinem Büro.
und das kam dann noch hinzu ...
Dass es mit dem TextGadget() im Thread funktioniert, ist mehr oder weniger Zufall oder Glück.
Das Fenster des Gadgets läuft natürlich als Thread.

Danke für das Interesse ...
Paul sagt: "Max lügt."
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."

Wer lügt hier wirklich und wer sagt die Wahrheit?

_________________________________________

286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Benutzeravatar
juergenkulow
Beiträge: 188
Registriert: 22.12.2016 12:49
Wohnort: :D_üsseldorf-Wersten

Re: WebGadget-Prozedur als Thread - wie?

Beitrag von juergenkulow »

Code: Alles auswählen

RunProgram("/tmp/WebGadget.out") 

Code: Alles auswählen

OpenWindow(0,0,0,1000,600,"Window",#PB_Window_ScreenCentered)
WebGadget(10, 0, 0, 1000, 600, "http://www.google.de")
Repeat
 Select WaitWindowEvent(1) 
     Case #PB_Event_CloseWindow    
      End 
 EndSelect

ForEver
Bitte stelle Deine Fragen, denn den Erkenntnisapparat einschalten entscheidet über das einzig bekannte Leben im Universum.

Jürgen Kulow Wersten :D_üsseldorf NRW D Europa Erde Sonnensystem Lokale_Flocke Lokale_Blase Orion-Arm
Milchstraße Lokale_Gruppe Virgo-Superhaufen Laniakea Sichtbares_Universum
Benutzeravatar
mk-soft
Beiträge: 3701
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: WebGadget-Prozedur als Thread - wie?

Beitrag von mk-soft »

Das WebGadget ohne URL anlegen ("") und erst im EventLoop den URL setzen.
Der Inhalt wird im Hintergrund (Threaded Systemintern) geladen.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten