Seite 1 von 2

SetGadgetText im Editorgadget klappt iwie nicht. warum?

Verfasst: 29.03.2009 12:06
von JayCool
Hi,

also ich möchte einfach den HTML-Code aus einem WebGadget in ein Editor-Gadget ausgeben und habe dazu schon ein Beispiel gebaut - Guxdu hier:

Code: Alles auswählen

  If OpenWindow(0, 0, 0, 1024, 550, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    WebGadget(0, 10, 10, 580, 280, "http://www.google.de/advanced_search?hl=de&num=100")
    ; Hinweis: wenn Sie eine lokale Datei benutzen möchten, dann ändern Sie den letzten Parameter
    ;          in "file://" + Pfad + Dateiname
    EditorGadget(1,10,300,900,200)
    
    Repeat
      event = WindowEvent()

      If event = #PB_EventType_DownloadEnd
      
        a$ = GetGadgetItemText(0,#PB_Web_HtmlCode)
        
        SetGadgetText(1,a$)

      EndIf    

    Until event = #PB_Event_CloseWindow
  EndIf
Jetzt habe ich aber das Problem, dass zwar das WebGadget angezeigt und mit Inhalt gefüllt wird, aber ins Editor-Gadget wird nichts übernommen. Mich würde interessieren, warum das einfach nicht hinhauen will. Was mache ich nur falsch???? Ich krieg noch die Krise. :cry:

Verfasst: 29.03.2009 12:44
von - chris -
Du mußt den EventType abfragen:

Code: Alles auswählen


  If OpenWindow(0, 0, 0, 1024, 550, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    WebGadget(0, 10, 10, 580, 280, "http://www.google.de/advanced_search?hl=de&num=100")
    ; Hinweis: wenn Sie eine lokale Datei benutzen möchten, dann ändern Sie den letzten Parameter
    ;          in "file://" + Pfad + Dateiname
    EditorGadget(1,10,300,900,200)
   
    Repeat
      event = WaitWindowEvent(20)
      eventType = EventType() 


      If eventType = #PB_EventType_DownloadEnd
          
        a$ = GetGadgetItemText(0,#PB_Web_HtmlCode)
       
        SetGadgetText(1,a$)

      EndIf   

    Until event = #PB_Event_CloseWindow
  EndIf 
  

Verfasst: 29.03.2009 12:53
von JayCool
Hi CHris
many thanks and
you made my day

Verfasst: 29.03.2009 13:16
von hjbremer
schönes Beispiel, aber warum event = WaitWindowEvent(20) ??? ich meine die 20

Verfasst: 29.03.2009 13:20
von Kaeru Gaman
weil's ausreicht....?

im Fragecode hatte er nur WindowEvent()
ein 20er timeout ist ne runde sache,
- kurz genug dass man häufig genug updated,
- lang ganug, dass ne komplette timeslice plus abweichung reinpasst,
- ein ganzer zehner, das können sich viele einfacher merken als 19 oder 21....

Verfasst: 29.03.2009 14:07
von hjbremer
uups dat versteh ich nicht, wird dann nicht der Rest meiner Anwendung langsamer ?

Verfasst: 29.03.2009 14:44
von Kaeru Gaman
das kommt drauf an wie du programmierst.

Vorgänge, die bei TimeOut getätigt werden, werden dann natürlich "nur" 50x pro Sekunde ausgeführt.
Allerdings sollte man sowieso gut überlegen, welche Vorgänge man ins Timeout packt und welche in die Ereignisbearbeitung.
Vorgänge die fortlaufend und schnell abgearbeitet werden müssen, gehören sowieso in einen thread.

Verfasst: 29.03.2009 15:26
von Andesdaf
das ist wieder ein typischer Fall von: Die Hilfe hilft.

(na gut, die Hilfe drückt sich da nicht direkt mit EventType aus)

Verfasst: 29.03.2009 15:37
von ts-soft
hjbremer hat geschrieben:schönes Beispiel, aber warum event = WaitWindowEvent(20) ??? ich meine die 20
Das bewirkt in diesem Fall garnichts :mrgreen:
Es wird zusätzlich alle 20 ms nichts gemacht :mrgreen:

Verfasst: 29.03.2009 17:16
von Fluid Byte
:mrgreen:
:mrgreen: