XbpHtmlViewer
Moderator: Moderatoren
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9390
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 363 Mal
- Kontaktdaten:
XbpHtmlViewer
Der XbpHtmlViewer setzt auch mit Xbase++ 2.0 auf die Version-4-kompatible AX-Komponente des IE, und das XbpHtmlWindow kann kein Javascript. Ich kann in beidem deshalb keinen GoogleMaps-Dialog darstellen - GoogleMaps sagt mir, dass mein Browser veraltet ist (XbpHtmlViewer) oder zeigt nur die Überschrift (XbpHtmlWindow). Ich muss die Komponente aber in einen Dialog einbetten. Extern geht natürlich ohne Probleme.
Hat jemand eine Idee? Oder kennt jemand ein Control, das vernünftig rendert und das man stattdessen verwenden kann? Mit JS?
Hat jemand eine Idee? Oder kennt jemand ein Control, das vernünftig rendert und das man stattdessen verwenden kann? Mit JS?
Herzlich,
Tom
Tom
- Jan
- Marvin
- Beiträge: 14660
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: XbpHtmlViewer
Moin Tom,
leider nein. Alaska unterstützt halt noch kein JS. Das kommt erst, wenn die auf Chromium umgestiegen sind. Wann auch immer das sein wird. Im Moment verwenden die die htmlayout.dll von Terra Informatica aus Kanada in einer veralteten Version. Aber selbst die neueste Version ist schon alt, wird nicht weiterentwickelt. Rendert zwar gut und schnell, aber eben halt ohne JS etc.
Jan
leider nein. Alaska unterstützt halt noch kein JS. Das kommt erst, wenn die auf Chromium umgestiegen sind. Wann auch immer das sein wird. Im Moment verwenden die die htmlayout.dll von Terra Informatica aus Kanada in einer veralteten Version. Aber selbst die neueste Version ist schon alt, wird nicht weiterentwickelt. Rendert zwar gut und schnell, aber eben halt ohne JS etc.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12912
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: XbpHtmlViewer
HTMLayout hat wie Scripter ein eigene Script Sprache "Tiscript (*.jsp)"
mir ist nicht klar wie Alaska HTMLayout integriert hat. ich kenne es nur im Zusammenhang mit o:VisualStyle.
nun kenne ich mich mit HTML überhaupt nicht aus aber HTMLayout soll ja die "Standart" HTML 3.2 Reference Specification können wo ich diesen Hinweis fand
mir ist nicht klar wie Alaska HTMLayout integriert hat. ich kenne es nur im Zusammenhang mit o:VisualStyle.
nun kenne ich mich mit HTML überhaupt nicht aus aber HTMLayout soll ja die "Standart" HTML 3.2 Reference Specification können wo ich diesen Hinweis fand
APPLET (Java Applets)
<!ELEMENT APPLET - - (PARAM | %text)*>
<!ATTLIST APPLET
codebase %URL #IMPLIED -- code base --
code CDATA #REQUIRED -- class file --
alt CDATA #IMPLIED -- for display in place of applet --
name CDATA #IMPLIED -- applet name --
width %Pixels #REQUIRED -- suggested width in pixels --
height %Pixels #REQUIRED -- suggested height in pixels --
align %IAlign #IMPLIED -- vertical or horizontal alignment --
hspace %Pixels #IMPLIED -- suggested horizontal gutter --
vspace %Pixels #IMPLIED -- suggested vertical gutter --
>
<!ELEMENT PARAM - O EMPTY>
<!ATTLIST PARAM
name NMTOKEN #REQUIRED -- The name of the parameter --
value CDATA #IMPLIED -- The value of the parameter --
>
Requires start and end tags. This element is supported by all Java enabled browsers. It allows you to embed a Java applet into HTML documents. APPLET uses associated {PARAM} elements to pass parameters to the applet. Following the PARAM elements, the content of APPLET elements should be used to provide an alternative to the applet for user agents that don't support Java. It is restricted to text-level markup as defined by the %text entity in the DTD. Java-compatible browsers ignore this extra HTML code. You can use it to show a snapshot of the applet running, with text explaining what the applet does. Other possibilities for this area are a link to a page that is more useful for the Java-ignorant browser, or text that taunts the user for not having a Java-compatible browser.
Here is a simple example of a Java applet: <applet code="Bubbles.class" width=500 height=500>
Java applet that draws animated bubbles.
</applet>
Here is another one using a PARAM element: <applet code="AudioItem" width=15 height=15>
<param name=snd value="Hello.au|Welcome.au">
Java applet that plays a welcoming sound.
</applet>
codebase = codebaseURL
This optional attribute specifies the base URL of the applet -- the directory or folder that contains the applet's code. If this attribute is not specified, then the document's URL is used.
code = appletFile
This required attribute gives the name of the file that contains the applet's compiled Applet subclass. This file is relative to the base URL of the applet. It cannot be absolute.
alt = alternateText
This optional attribute specifies any text that should be displayed if the browser understands the APPLET tag but can't run Java applets.
name = appletInstanceName
This optional attribute specifies a name for the applet instance, which makes it possible for applets on the same page to find (and communicate with) each other.
width = pixels
height = pixels
These required attributes give the initial width and height (in pixels) of the applet display area, not counting any windows or dialogs that the applet brings up.
align = alignment
This attribute specifies the alignment of the applet. This attribute is defined in exactly the same way as the {IMG} element. The permitted values are: top, middle, bottom, left and right. The default is bottom.
vspace = pixels
hspace = pixels
These optional attributes specify the number of pixels above and below the applet (VSPACE) and on each side of the applet (HSPACE). They're treated the same way as the IMG element's VSPACE and HSPACE attributes.
The PARAM element is used to pass named parameters to applet: <PARAM NAME = appletParameter VALUE = value>
PARAM elements are the only way to specify applet-specific parameters. Applets read user-specified values for parameters with the getParameter() method.
name = applet parameter name
value = parameter value
SGML character entities such as é and ¹ are expanded before the parameter value is passed to the applet. To include an & character use &.
Note: PARAM elements should be placed at the start of the content for the APPLET element. This is not specified as part of the DTD due to technicalities with SGML mixed content models.
gruss by OHR
Jimmy
Jimmy
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9390
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 363 Mal
- Kontaktdaten:
Re: XbpHtmlViewer
Und wie soll das bei GoogleMaps helfen? Du solltest Deinen Nick von Auge-Ohr zu Off-Topic ändern, Jimmy.
Herzlich,
Tom
Tom
- AUGE_OHR
- Marvin
- Beiträge: 12912
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: XbpHtmlViewer
wie schon gesagt ich verstehe nichts von HTML und mit Java finde ich nichts in meinem Fundus oder Alaska/Ot4xb Newsgroups.
XbpHTMLViewer() wird ja im Demo \SOURCE\samples\activex\webbrowser\_webbrowser.prg und verwendet IEframe.dll
wenn ich HTMLayout/Scripter richtig verstehe kann man damit den Webbrowser von IEframe.dll ersetzen.
das ActiveX Control kann ja viel mehr als nur rendern (s.h. Help File) ... keine Ahnung wie viel Alaska übernommen hat ich interpretiere es so das man ein HTML Dokument wie angegeben "Präperieren" muss damit es HTMLayout/Scripter ausführen kann. ob HTMLayout/Scripter Ergebnisse von Google Maps rendern kann weiss ich nicht. man kann bei denen ja mal anfragen.
XbpHTMLViewer() wird ja im Demo \SOURCE\samples\activex\webbrowser\_webbrowser.prg und verwendet IEframe.dll
wenn ich HTMLayout/Scripter richtig verstehe kann man damit den Webbrowser von IEframe.dll ersetzen.
das ActiveX Control kann ja viel mehr als nur rendern (s.h. Help File) ... keine Ahnung wie viel Alaska übernommen hat ich interpretiere es so das man ein HTML Dokument wie angegeben "Präperieren" muss damit es HTMLayout/Scripter ausführen kann. ob HTMLayout/Scripter Ergebnisse von Google Maps rendern kann weiss ich nicht. man kann bei denen ja mal anfragen.
gruss by OHR
Jimmy
Jimmy
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: XbpHtmlViewer
Hallo Tom
die App auf eine Web-App umbauen. Oder nur den Dialog im Browser als Web-App aufbauen dann geht es Problemlos. Dann bist du auch nicht mehr von Alaska bezw. AX-Controls abhänging.
Gruss Carlo
die App auf eine Web-App umbauen. Oder nur den Dialog im Browser als Web-App aufbauen dann geht es Problemlos. Dann bist du auch nicht mehr von Alaska bezw. AX-Controls abhänging.
Gruss Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9390
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 363 Mal
- Kontaktdaten:
Re: XbpHtmlViewer
Hallo, Carlo.
Geniale Idee. Aber es geht um Darstellungen innerhalb der Anwendung, die mehrere tausend Mal auf Desktops läuft. Um eine nicht eben kleine Anwendung. Die nicht mal eben auf irgendwas umgestellt wird oder werden kann.
Es geht übrigens konkret überhaupt nicht so sehr um JavaScript, sondern um iFrames, die benötigt werden, um die Responses von GoogleMaps in das HTML-Template einzubinden. Und möglicherweise geht es auch nicht einmal um die, sondern um irgendeine Eigenschaft, die GoogleMaps dazu veranlasst, mir zu erklären, dass ich einen veralteten Browser verwende: Erklärung:
https://developers.google.com/maps/docu ... port?hl=de
Geniale Idee. Aber es geht um Darstellungen innerhalb der Anwendung, die mehrere tausend Mal auf Desktops läuft. Um eine nicht eben kleine Anwendung. Die nicht mal eben auf irgendwas umgestellt wird oder werden kann.
Es geht übrigens konkret überhaupt nicht so sehr um JavaScript, sondern um iFrames, die benötigt werden, um die Responses von GoogleMaps in das HTML-Template einzubinden. Und möglicherweise geht es auch nicht einmal um die, sondern um irgendeine Eigenschaft, die GoogleMaps dazu veranlasst, mir zu erklären, dass ich einen veralteten Browser verwende: Erklärung:
https://developers.google.com/maps/docu ... port?hl=de
Herzlich,
Tom
Tom
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: XbpHtmlViewer
Hallo Tom
Die erste dieser Eigenschaften ist "User-Agent" die im Kopf jeder Html Anfrage steht die dein Client an Google-Maps sendet. Die kommt immer vom Client, Browser bezw. deinem Tool.
Da die Zukunft bei Web-App's liegt in welchen es keine HTMLViewer mehr braucht wird es vermutlich schwierig ein Tool zu finden das noch Entwickelt wird und das eine neue "User-Agent" Kennung sendet.
Es ging doch mal IExplorer im Vollbilmodus in einem Dialogfenster zu öffnen/darzustellen/auszuführen, mit dem aktuellen Iexplorer müsste doch dann Google Maps laufen.....
Gruss Carlo
Die erste dieser Eigenschaften ist "User-Agent" die im Kopf jeder Html Anfrage steht die dein Client an Google-Maps sendet. Die kommt immer vom Client, Browser bezw. deinem Tool.
Da die Zukunft bei Web-App's liegt in welchen es keine HTMLViewer mehr braucht wird es vermutlich schwierig ein Tool zu finden das noch Entwickelt wird und das eine neue "User-Agent" Kennung sendet.
Es ging doch mal IExplorer im Vollbilmodus in einem Dialogfenster zu öffnen/darzustellen/auszuführen, mit dem aktuellen Iexplorer müsste doch dann Google Maps laufen.....
Gruss Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- AUGE_OHR
- Marvin
- Beiträge: 12912
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: XbpHtmlViewer
ich habe mal die Demo von HTMLayout ausprobiert
eine Abfrage mit Express++ Demo \exp20\Samples\MAPDIR\MAPDIR.PRG mit DC_MapDirections() ist scheinbar "zu lang" ... oder müsste Unicode sein ... der Debugger zeigt mir eine Menge aber ich verstehe es nicht.
---
wie schon sagte verstehe ich nichts von Internet Dinge aber ich fürchte das es "richtig" nur über die Google Maps API geht. so wie ich es gelesen habe MUSS man sogar die API benutzen wenn es kommerziell ist. Abfragen mit DC_MapDirections() währen also nur für den Privat Gebrauch.
---
ein "Directions" Beispiel hab ich hier gefunden
https://developers.google.com/maps/docu ... mple?hl=de
wenn ich das mit Carlos Aussage sehe "denke" ich das man so die Seite / Anfrage in HTML codieren muss und dann kommt der Script aufruft (im BODY)
damit währen wir beim nächsten Punkt dem API KEY ohne den geht gar nichts.
https://developers.google.com/maps/docu ... -key?hl=de
also wenn man die so aufbereitet HTML Seite hat und mit dem HTMLayout Demo lädt dann bekomme ich das er "versteht" scheinbar den Code und die Combo-Boxen funktionieren aber ohne API KEY geht es nicht weiter.
wie schon gesagt kann HTMLayout viel mehr als das was Alaska eingebaut hat mit CCS Rendering
ich habe es bislang nur in Zusammenhang mit o:useVisualStyle gesehen.
---
ich würde es Windows Ownerdraw machen weil man damit die Koordinaten/Grösse/Status bekommt die ich zum "malen" braucht. statt mit GDI / DWM zu "malen" wird eben eine HTML-Engine (oder Teile) verwendet zum Rendern.
---
p.s. wie Jan schon sagte wird HTMLayout nicht mehr unterstützt. Es gibt aber mit Scriptor den Nachfolger er noch "mehr" kann.
ok es ist schön aber es zeigt das man es im "eigenen" Fenster rendern lassen kann.eine Abfrage mit Express++ Demo \exp20\Samples\MAPDIR\MAPDIR.PRG mit DC_MapDirections() ist scheinbar "zu lang" ... oder müsste Unicode sein ... der Debugger zeigt mir eine Menge aber ich verstehe es nicht.
---
wie schon sagte verstehe ich nichts von Internet Dinge aber ich fürchte das es "richtig" nur über die Google Maps API geht. so wie ich es gelesen habe MUSS man sogar die API benutzen wenn es kommerziell ist. Abfragen mit DC_MapDirections() währen also nur für den Privat Gebrauch.
---
ein "Directions" Beispiel hab ich hier gefunden
https://developers.google.com/maps/docu ... mple?hl=de
wenn ich das mit Carlos Aussage sehe "denke" ich das man so die Seite / Anfrage in HTML codieren muss und dann kommt der Script aufruft (im BODY)
Code: Alles auswählen
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>
https://developers.google.com/maps/docu ... -key?hl=de
also wenn man die so aufbereitet HTML Seite hat und mit dem HTMLayout Demo lädt dann bekomme ich das er "versteht" scheinbar den Code und die Combo-Boxen funktionieren aber ohne API KEY geht es nicht weiter.
wie schon gesagt kann HTMLayout viel mehr als das was Alaska eingebaut hat mit CCS Rendering
ich habe es bislang nur in Zusammenhang mit o:useVisualStyle gesehen.
---
ich würde es Windows Ownerdraw machen weil man damit die Koordinaten/Grösse/Status bekommt die ich zum "malen" braucht. statt mit GDI / DWM zu "malen" wird eben eine HTML-Engine (oder Teile) verwendet zum Rendern.
---
p.s. wie Jan schon sagte wird HTMLayout nicht mehr unterstützt. Es gibt aber mit Scriptor den Nachfolger er noch "mehr" kann.
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12912
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: XbpHtmlViewer
die Frage ist "was" willst du mit IE 11 ausprobieren
eine Syntax wie DC_MapDirections() verwendet im IE eingesetzt funktioniert aber das läuft dann eben im IE und nicht in der Xbase++ App
---
XbpHtmlViewer() verwendet die COM Schnittstelle von IEFRAME.DLL
vergleiche mal die IEFRAME.DLL von Windows 10 und vorherigen OS() Versionen.
der IE wurde ja zu Gunsten von Edge eingestellt aber der nutzt die DLL nicht -> wird nicht mehr unterstützt (na ja Sicherheits-Patches)
gruss by OHR
Jimmy
Jimmy
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: XbpHtmlViewer
Hallo Jimmy
Altes wird noch gewartet und seit Jahren alles auf Web-Apps mit xb2net umgestellt. Seit ich Mitarbeiter habe die JS/HTML/CSS kennen geht das echt flott und gibt mit Bootstrap, JQuery, Datatables und Co, schöne Ergebnisse.
Ich komme z.T. nicht nach den Servercode in Xbase zu schreiben .....
Gruss carlo
ja, ja die Marschrichtung heist "Mobile first!" ich arbeite nicht mehr mit den GUI-Xbase Parts.der IE wurde ja zu Gunsten von Edge eingestellt aber der nutzt die DLL nicht -> wird nicht mehr unterstützt
Altes wird noch gewartet und seit Jahren alles auf Web-Apps mit xb2net umgestellt. Seit ich Mitarbeiter habe die JS/HTML/CSS kennen geht das echt flott und gibt mit Bootstrap, JQuery, Datatables und Co, schöne Ergebnisse.
Ich komme z.T. nicht nach den Servercode in Xbase zu schreiben .....
Gruss carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9390
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 363 Mal
- Kontaktdaten:
Re: XbpHtmlViewer
Till (Alaska) konnte mir helfen. Falls jemand an einem ähnlichen Problem hängt: Das Control arbeitet standardmäßig im Emulationsmodus für IE 4 oder 6, aber man kann für seine eigene Anwendung den Emulationsmodus per Registry setzen:
Computer\HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
dort einen DWORD-Schlüssel mit dem Namen der eigenen App (MeineApp.exe) erzeugen und z.B. auf IE 11/Edge setzen, indem 2AF9 (11001) eingetragen wird. Funzt!
Computer\HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
dort einen DWORD-Schlüssel mit dem Namen der eigenen App (MeineApp.exe) erzeugen und z.B. auf IE 11/Edge setzen, indem 2AF9 (11001) eingetragen wird. Funzt!
Herzlich,
Tom
Tom
- Jan
- Marvin
- Beiträge: 14660
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: XbpHtmlViewer
danke für den Hinweis. Das ist doch schon mal was. Aber bei Till ist man halt immer gut aufgehoben.
Jetzt wäre es natürlich schön, wenn man das etwas eleganter lösen könnte als selber manuell in der Registry rumzufuhrwerken (egal ob mit dem RegEdit oder irgendwelchen Xbase++-Klassen).
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9390
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 363 Mal
- Kontaktdaten:
Re: XbpHtmlViewer
Warum? Das ist doch ziemlich elegant, zumal Du den Modus explizit für Deine App festlegen kannst. Es gibt einige andere Keys dieser Art, die ich sowieso scanne und setze, beispielsweise für das Fehlerverhalten von L&L, das funktioniert ähnlich.
Edit: Ich verstehe nicht, warum einige von Euch so besorgt sind, wenn es um die Registry geht. Das ist simpel eine Datenbank, über die Anwendungen und das Betriebssystem Einstellungen verwalten und austauschen, nichts weiter. Und in HKCU kann man immer schreiben.
Edit: Ich verstehe nicht, warum einige von Euch so besorgt sind, wenn es um die Registry geht. Das ist simpel eine Datenbank, über die Anwendungen und das Betriebssystem Einstellungen verwalten und austauschen, nichts weiter. Und in HKCU kann man immer schreiben.
Herzlich,
Tom
Tom
- AUGE_OHR
- Marvin
- Beiträge: 12912
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: XbpHtmlViewer
bei mir funktioniert es nichtTom hat geschrieben: ↑Do, 03. Mai 2018 14:15 Computer\HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
dort einen DWORD-Schlüssel mit dem Namen der eigenen App (MeineApp.exe) erzeugen und z.B. auf IE 11/Edge setzen, indem 2AF9 (11001) eingetragen wird. Funzt!
habe die Einträge gemacht und neu gebootet aber trotzdem bekomme ich die Meldung im Xbase++ webbrowser.exe Demo mit
https://www.google.com/maps?q=Industrie ... 0+Eschborn und er stützt ab
ich habe im IE nachgesehen und da sind keine Einträge ... in EDGE hab ich den Punkt (noch) nicht gefunden.
was mache ich falsch
gruss by OHR
Jimmy
Jimmy