Seite 1 von 4

Frage zu Webgadget

Verfasst: 16.11.2004 20:34
von MJP
Hi habe mal ne Frage...
kann man den Html Code auch irgendwie direkt einbinden???

So geht es ja nicht :cry:

Code: Alles auswählen

WebGadget(1, 0, 0, 100, 100, "<html><head></head><body><p>Hallo</p></body></html>")
Geht das irgendwie anders?

:D :D THx MJP :D :D

Verfasst: 16.11.2004 21:04
von Falko
Indirekt.
Du mußt quasi die .htm erst erzeugen und mit dem WebGadget() Anzeigen.
Gruß Falko

Code: Alles auswählen

CreateFile(0,"C:\Mein.htm")
WriteString("<html><head></head><body><p>Hallo</p></body></html>")
CloseFile(0)
If OpenWindow(0,100,250,100,100,#PB_Window_SystemMenu,"MeinWebgadget") And CreateGadgetList(WindowID())
   WebGadget(0, 10, 0, 100, 100,"C:\Mein.htm")
EndIf
Repeat:Until WaitWindowEvent()=#PB_EventCloseWindow

Verfasst: 16.11.2004 21:19
von MJP
ahhhhh Stimmt warum bin ich darauf nicht selber gekomen :oops:

THx Falko

Verfasst: 17.11.2004 00:09
von Lars
Das geht sogar direkt, wie ein Beispiel von PB aus dem Codearchiv indirekt zeigt:

Code: Alles auswählen

 url$="about:<html><body scroll='no' leftmargin='0' topmargin='0'><img src='"+animgif$+"'></img></body></html>"
  WebGadget(0,50,50,100,100,url$)

Verfasst: 04.01.2005 23:08
von Falko
@Lars
Dein Tip ist super. Hab ihn jetzt auch gebraucht :D .
Aber eine komplette HTML-Seite mit Javascript läßt sich damit nicht einfügen, oder? Hab schon ein paar Versuche gemacht aber mehr als ein Link mit einem Bild geht habe ich nicht hinbekommen.
Mich interessiert es aus diesem Grund, da ich eine komplette html in der EXE includen und per WebGadget anzeigen möchte. Hättest du da vielleicht noch'n Tip?

Gruß Falko

Verfasst: 04.01.2005 23:31
von Kaeru Gaman
holzhammer-methode:

mit include-binary in die exe,
zur laufzeit in ein tmp-file schreiben und das anzeigen,
vor beenden des progs wieder löschen.

Verfasst: 05.01.2005 07:33
von captain third
:shock: wie jtezt,man kann htm datein erstellen??? das heist man könnte doch rein theoretisch auch einen html editor selber basteln oder seh ich das falsch? <) dann hät ich wieder was zu tun :mrgreen:

Verfasst: 05.01.2005 10:08
von DarkDragon
captain third hat geschrieben::shock: wie jtezt,man kann htm datein erstellen??? das heist man könnte doch rein theoretisch auch einen html editor selber basteln oder seh ich das falsch? <) dann hät ich wieder was zu tun :mrgreen:
*KopfgegenTischkantehau* Sind nix anderes wie Textdateien, nur mit ner anderen Endung. Also OpenFile(0, "*.html") : WriteString("<html>") : CloseFile(0).

Verfasst: 05.01.2005 12:13
von sharkpeter
Hallo @All

ich habe da mal was probiert:

Code: Alles auswählen

;Online_request 
;Create: 05.01.2005 
;Actual: 
;by Jens Haipeter 

;Jens, wenn du das mal wieder compilierst, denke daran: 
;Die ATL.dll  muß aus dem Verzeichnis PureBasic\Compilers\) 
;in das gleiche Verzeichnis wie das Executable. 
  
;bei Offline Aufruf auch die *.htm Datei oder man gibt den Pfad an 

;benötigt die Setup-Lib von A.Miethe oder GetTempPath() entfernen) 

;Name des HTML-Files: 
;  wenn auf dem PC mit direkter Angabe: 
;  name$="file:\\e:\test_online.htm": #WinWidth=130: #WinHeight=220: #GadWidth=120: #GadHeight=170 


;  wenn auf dem PC im Verzeichnis der *.exe 
;  name$="test_online.htm": #WinWidth=130: #WinHeight=220: #GadWidth=120: #GadHeight=170 

;  wenn im Internet: 
name$="http://www.winbahn.de": #WinWidth=1280: #WinHeight=980: #GadWidth=1278: #GadHeight=900 
;  Werbung in eigener Sache ;-), außerdem liebe ich es gern groß 

Global _TempDir.s 
Global _ExePath.s 
Global _HTMFile.s 
_TempDir = GetTempPath() 
_ExePath = Space(1000) 
GetModuleFileName_(0, @_ExePath, 1000) 
_ExePath = GetPathPart(_ExePath) 

;wenn Internet oder direkte Pfadangabe, dann nur name$ 
;_HTMFile = "file:\\"+_ExePath+name$ 
_HTMFile = name$ 

;MessageRequester(_HTMFile,"",0) ; nur falls was schief geht 

Enumeration 
  #Window_0 
EndEnumeration  

Enumeration 
  #Web_0
  #Button_0 
EndEnumeration  

a=Date(); Zeit nehmen

If OpenWindow(#Window_0,0,20,#WinWidth,#WinHeight,#PB_Window_SystemMenu,"Wer ist Online?") 
  If CreateGadgetList(WindowID(#Window_0)) 
    WebGadget   (#Web_0   ,  1, 40,#GadWidth,#GadHeight,_HTMFile) 
    ButtonGadget(#Button_0,  5,  5,120, 24             ,"Aktualisieren")
    Repeat
      EventID = WindowEvent()
      Delay(10)
      b=Date()
      If b>a+10
        DisableGadget(#Button_0,0)
      EndIf
      If b>a+20
        SetGadgetState(#Web_0,#PB_Web_Refresh)
        DisableGadget(#Button_0,1)
        a=b
      EndIf
      If EventID = #PB_EventGadget
        Select EventGadgetID()
          Case #Button_0
            SetGadgetState(#Web_0,#PB_Web_Refresh)
            DisableGadget(#Button_0,1)
            a=Date()
        EndSelect
      EndIf
      If EventID=#PB_Event_CloseWindow
        CloseWindow(#Window_0)
        End
      EndIf
    ForEver 
  EndIf 
EndIf 
CloseWindow(#Window_0) 
End
Das funktioniert so :D 8), eventuell die Fenster/Gadgetgröße anpassen, wer hat schon einen 1280*1024 :mrgreen: . Die *.htm Datei muß natürlich existieren (bei Offline-Aufruf) einfach irgend eine nehmen. Der Webseitenaufruf funktioniert so wie er ist :D 8)

@Falko,
wäre das nix, habe heute nach fast 1 Woche PB Abstinenz mal wieder gefummelt, weißt ja warum :allright: .

@Lars,
da habe ich doch glatt Deine Tipps :allright: beherzigt, die waren gut (do you remember --> mehrere OS auf...)

@Andre
Da ist in der pb.chm was falsch:
Beispiel:
If OpenWindow(0,0,0,600,300,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"WebGadget") And CreateGadgetList(WindowID(0))
WebGadget(0,10,10,580,280,"http://www.purebasic.com")
; Hinweis: wenn Sie eine lokale Datei benutzen möchten, dann ändern Sie den letzten Parameter
; in "file://" + Pfad + Dateiname
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
sollte wohl so da stehen: "file:\\"+pfad+Dateiname" :D


//Edit: habe den Code nochmal geändert//
Gruß Jens

Verfasst: 05.01.2005 13:01
von bluejoke
Für gewöhnlich wird hinter der Angabe des Protokolls zweimal ein normaler Slash ("/") und kein Backslash ("\") gemacht, also isses in der Hilfe IMHO richtig.