XbpHtmlViewer

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

XbpHtmlViewer

Beitrag von Tom »

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?
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: XbpHtmlViewer

Beitrag von Tom »

Keine Idee? Niemand? :(
Herzlich,
Tom
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: XbpHtmlViewer

Beitrag von Jan »

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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: XbpHtmlViewer

Beitrag von AUGE_OHR »

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
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 &eacute; and &#185; are expanded before the parameter value is passed to the applet. To include an & character use &amp;.

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
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: XbpHtmlViewer

Beitrag von Tom »

Und wie soll das bei GoogleMaps helfen? Du solltest Deinen Nick von Auge-Ohr zu Off-Topic ändern, Jimmy. :wink:
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: XbpHtmlViewer

Beitrag von AUGE_OHR »

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
HTMLayout_Navigate.jpg
HTMLayout_Navigate.jpg (161.69 KiB) 8817 mal betrachtet
AX_HtmLayout_CHM.zip
generiertes Help file
(49.43 KiB) 222-mal heruntergeladen
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
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: XbpHtmlViewer

Beitrag von ramses »

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
Valar Morghulis

Gruss Carlo
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: XbpHtmlViewer

Beitrag von Tom »

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:
maps.jpg
maps.jpg (28.78 KiB) 8782 mal betrachtet
Erklärung:
https://developers.google.com/maps/docu ... port?hl=de
Herzlich,
Tom
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: XbpHtmlViewer

Beitrag von ramses »

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
Valar Morghulis

Gruss Carlo
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: XbpHtmlViewer

Beitrag von AUGE_OHR »

ich habe mal die Demo von HTMLayout ausprobiert
HL_Forum.jpg
HL_Forum.jpg (190.99 KiB) 8767 mal betrachtet
HL_PDR.jpg
HL_PDR.jpg (222.47 KiB) 8767 mal betrachtet
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>
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
HL_TOM.jpg
HL_TOM.jpg (126.26 KiB) 8767 mal betrachtet
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
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: XbpHtmlViewer

Beitrag von AUGE_OHR »

ramses hat geschrieben: Mi, 02. Mai 2018 22:16 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.....
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
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: XbpHtmlViewer

Beitrag von ramses »

Hallo Jimmy

der IE wurde ja zu Gunsten von Edge eingestellt aber der nutzt die DLL nicht -> wird nicht mehr unterstützt
ja, ja die Marschrichtung heist "Mobile first!" ich arbeite nicht mehr mit den GUI-Xbase Parts.
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
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: XbpHtmlViewer

Beitrag von Tom »

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!
Herzlich,
Tom
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: XbpHtmlViewer

Beitrag von Jan »

:thumbright:

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.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: XbpHtmlViewer

Beitrag von Tom »

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.
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: XbpHtmlViewer

Beitrag von AUGE_OHR »

Tom 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!
bei mir funktioniert es nicht :banghead:

habe die Einträge gemacht
FEATURE_BROWSER_EMULATION.JPG
FEATURE_BROWSER_EMULATION.JPG (99.89 KiB) 8689 mal betrachtet
und neu gebootet aber trotzdem bekomme ich die Meldung im Xbase++ webbrowser.exe Demo mit
https://www.google.com/maps?q=Industrie ... 0+Eschborn
Not_work_IE.jpg
Not_work_IE.jpg (23.74 KiB) 8689 mal betrachtet
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
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: XbpHtmlViewer

Beitrag von Tom »

Bei mir funzt das.
Herzlich,
Tom
Antworten