SetGadgetText im Editorgadget klappt iwie nicht. warum?

Anfängerfragen zum Programmieren mit PureBasic.
JayCool
Beiträge: 54
Registriert: 02.08.2007 20:03

SetGadgetText im Editorgadget klappt iwie nicht. warum?

Beitrag 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:
- chris -
Beiträge: 195
Registriert: 24.08.2005 19:52
Wohnort: Stadtallendorf

Beitrag 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 
  
JayCool
Beiträge: 54
Registriert: 02.08.2007 20:03

Beitrag von JayCool »

Hi CHris
many thanks and
you made my day
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Beitrag von hjbremer »

schönes Beispiel, aber warum event = WaitWindowEvent(20) ??? ich meine die 20
Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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....
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Beitrag von hjbremer »

uups dat versteh ich nicht, wird dann nicht der Rest meiner Anwendung langsamer ?
Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag 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)
Win11 x64 | PB 6.20
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

:mrgreen:
:mrgreen:
Windows 10 Pro, 64-Bit / Outtakes | Derek
Antworten