Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Darstellungsfehler im Twebbrowser (https://www.delphipraxis.net/180919-darstellungsfehler-im-twebbrowser.html)

froschprinz 1. Jul 2014 07:55

Darstellungsfehler im Twebbrowser
 
Hallo,

ich verwende schon seit Jahren den TWebbrowser (und Delphi 7).
Nun mehren sich aber immer mehr Internet-Seiten (und damit die Beschwerden der Nutzer), die nicht korrekt angezeigt werden. Z.B. wird die Seite www.nachrichten-leicht.de von Nachrichten-Leicht im Internetexplorer und Firefox korrekt angezeigt. Im TWebbrowser und im EmbeddedWebBrowser kommen diese aber total verschoben.

Hat jemand eine Idee, wie ich das korrigieren kann oder worann da liegt?

himitsu 1. Jul 2014 08:07

AW: Darstellungsfehler im Twebbrowser
 
Eine andere Browserkomponente verwenden?

Das Ding, welches da einbebunden wird, ist gern mal eine ältere IE-Version, aber vorllem ist diese in ihrer ganz oder Funktion eingeschränkt und auch die Sicherheitseinstellungen sind etwas strenger.
- JavaScript
- CSS
usw.

Und vorallem ohne JavaScript, Ajax und Co. läuft ja heutzutage nix mehr.



PS: Es gab hier vor Kurzem schonmal einen Thread, wo es darum geht, wie uund wo man eventuell etwas an der verwendeten IE-Version rumschrauben kann.

froschprinz 1. Jul 2014 08:48

AW: Darstellungsfehler im Twebbrowser
 
Hallo,

danke für Deine Antwort.
Ich glaube du meint da hier:http://weblog.west-wind.com/posts/20...the-IE-Version. Ich habe es probiert, kann aber keinen Unterschied feststellen.
Irgendwie muss es doch möglich sein, mit Delphi Webseiten vernünftig anzeigen zu lassen?

mkinzler 1. Jul 2014 11:17

AW: Darstellungsfehler im Twebbrowser
 
Z.B. mit Chromium embedded
https://code.google.com/p/dcef3/

greenmile 1. Jul 2014 12:40

AW: Darstellungsfehler im Twebbrowser
 
- Bitte löschen -

froschprinz 3. Jul 2014 07:26

AW: Darstellungsfehler im Twebbrowser
 
Hallo,
ich habe nach viel rumprobieren selber eine Lösung gefunden, die herforragend funktioniert. Eigentlich sollte jeder, der noch TWebbrowser benutzt, standartmäßig SetWebbrowserMode(11,'MeineAnwendung.exe'); setzen. Dann werden die Seiten perfekt dargestellt.
Bitte nicht vergessen, dass dazu Admin-Rechte nötig sind!
Übrigens: Auch wenn kein Internetexplorer 11 installiert ist, so führt der Aufruf SetWebbrowserMode(11) dennoch zum Erfolg, da dann der nächst-niedrigere Internetexplorer verwendet wird.
Funktioniert sowohl bei 32Bit als auch bei 64Bit, da Windows automatisch umleitet.

Delphi-Quellcode:
function SetWebbrowserMode(Mode: integer; AppName: string = ''):boolean;
const
  REG_KEY = 'SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION';
var
  Reg: TRegistry;
  Value: Integer;
  Erfolg:boolean;
begin
  Erfolg:=false;
  if AppName = '' then
    AppName := ExtractFileName(Application.ExeName);
  Case Mode of
    7 : Value := $1B58;
    8 : Value := $22B8;
    9 : Value := $270F;
    10 : Value := $2AF7;
    11 : Value := $2EDF;
  end;
  Reg := TRegistry.Create(KEY_ALL_ACCESS);
   try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKey(REG_KEY, True) then
    begin
      Reg.WriteInteger(AppName, Value);
      Reg.CloseKey;
      erfolg:=true;
    end;
  finally
    Reg.Free;
    Result:=Erfolg;
  end;
end;
Beispielaufruf:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
 if not SetWebbrowserMode(11,'MeineAnwendung.exe')then showmessage('Sie haben keinen Schreibzugriff auf die Registrierungsdatenbank. Bitte informieren Sie Ihren Administrator');
end;

greenmile 3. Jul 2014 08:37

AW: Darstellungsfehler im Twebbrowser
 
Da wird intern nichts anderes gemacht als in http://weblog.west-wind.com/posts/20...the-IE-Version beschrieben.
Die Registry sollte durch den Installer geändert werden, Du musst den Eintrag nur einmal hinzufügen und nicht jedesmal.

froschprinz 3. Jul 2014 09:09

AW: Darstellungsfehler im Twebbrowser
 
Hi,

klar, durch die http://weblog.west-wind.com/posts/20...the-IE-Version bin ich ja auch drauf gekommen. Ich wollte nur gleich die fertige Funktion mitliefern, falles sie mal ein anderer benötigt.

Klar ist auch, dass dies nur bei der Installation durch den Installer gamacht werden muss/sollte. Meine Anwendung ist aber bereits seit Jahren beim Kunden installiert. Die Updates verteile ich ohne Installer - sondern nur die Exe. Deshalb lasse ich die Exe einmal prüfen, ob die Einstellung schon erfolgt ist. Wenn nicht biete ich eine Taste, die dann die obige Routine ablaufen lässt.

Aber trotzdem vielen Danke für Deine berechtigten Hinweise.

greenmile 3. Jul 2014 09:13

AW: Darstellungsfehler im Twebbrowser
 
Spar Dir die Arbeit :)

http://www.delphipraxis.net/175520-e...uer-xe4-5.html

himitsu 3. Jul 2014 09:22

AW: Darstellungsfehler im Twebbrowser
 
Ich hab solche Probleme auch mit Chromium embedded gelöst und parallel/alternativ die Anzeige im externen Standard-Browser.

Nja, zuletzt nutzten alle den Externen und wir bauten Chromium embedded wieder aus (auskommentiert und DLLs entfernt) und stattdessen ist der interne TWebBrowser nur noch als teilweise funktionierendes Notfallsystem drin, falls der Externe mal rumzickt.

greenmile 3. Jul 2014 09:27

AW: Darstellungsfehler im Twebbrowser
 
Ich habe mit Chromium rumprobiert und kann ehrlich gesagt nicht nachvollziehen, wieso den manche heiß empfehlen. Er bläht das Setup um locker 30-35 MByte auf, die EXE startet langsamer (erstellen vom Chromium Objekt) und ich hatte massiv Probleme mit dem Ding (Absturz). Der IE ist auf 99% aller Systeme, ich muss nichts mit-installieren und er kennt 1-2 Events mehr, die ich gerne nutze. Bin (leider) von ab, er hatte seine Chance.

Just my 2 Cent.

froschprinz 3. Jul 2014 09:32

AW: Darstellungsfehler im Twebbrowser
 
mir ging es mit Chromium ebenso!

Den EmbeddedWB habe ich ebenfalls ausprobiert. Und der hatte exact die gleiche verschobene Darstelllung wie der TWebbrowser.
Auf einen Standartbrowser kann ich auch nicht zurückgreifen, da die Software im öffentlichen Bereich läuft und ich das freie Serven unterbinden möchte. Des weiteren wird die Darstellung (barrierefrei) für Menschen mit Berhinderungen angepasst. Ich habe keine Ahnung, wie ich das alles mit einem Standartbrowser machen soll???

himitsu 3. Jul 2014 09:43

AW: Darstellungsfehler im Twebbrowser
 
Zitat:

Zitat von greenmile (Beitrag 1264225)
Just my 2 Cent.

Vorher wurde der Firefox Embedded empfohlen, aber da hatte Mozilla dann die API entsorgt.

Warum?
Man ist damit unabhängig und nicht komischen Systemeinstellungen ausgeliefert.

Auf Serversystemen ist der IE standardmäßig krankhaft in seiner Funktion eingeschränkt.
In Windows-Home-Server kann man den zwar angeblich für alle Benutzer wieder freischalten, aber das funktioniert nicht wirklich
und auf diesem Windows Server 2008, wo ich grade arbeite, sind auch viele Dinge standardmäßig gesperrt und da kaum jemand den IE nutzt, macht sich auch keiner die Mühe dessen Sicherheitseinstellungen mal ordentlich anzupassen.


Jupp: Genau das war bei uns auch der Grund.
Wir brauchten für die HTML-Hilfe einen Browser, aber in vielen Firmen ist der Standardwebbrowser eingeschränkt oder gar gesperrt.
Der eingebettete Browser im Programm ist extra so gestaltet, daß man eben nicht wahllos rumsurfen kann, sondern nur die Hilfe sieht, weswegen die Admins dessen Zugang problemloser gestatten können.

froschprinz 3. Jul 2014 10:01

AW: Darstellungsfehler im Twebbrowser
 
Hallo himitsu,

jetzt steh ich auf dem Schlauch? Also welchen Browser nutzt ihr aktuell, den ihr sehr gut einschränken konntet? Hast du ein Codebeispiel?

mkinzler 3. Jul 2014 10:05

AW: Darstellungsfehler im Twebbrowser
 
Er meint den erwweiterten Sicherheitsmodus des IE, der bei den neuen Serverversionen immer standardmässig aktiv ist und den Browswer zuverlässig unbrauchbar macht :mrgreen:

himitsu 3. Jul 2014 10:15

AW: Darstellungsfehler im Twebbrowser
 
Aktuell meistens den Standardbowser des Systems und ansonsten den TWebBrowser (XE). Wir hatten uns dann auch die paar MB gespart, obwohl das bei den restlichen 200 MB des Programms eh nicht sooooo sehr auffällt.
Aber so sparten wir und nach den Tests wenigstens die Anpassung des Setups. Und für den Notfall ist der Chromium-Code noch auskommentiert im Programm vorhanden.

Die Fehler in der Anzeige waren durch kleinere Anpassungen im HTML/CSS/JS teilweise auszugleichen und der Rest war uns erstmal egal.
Der Browser ist ausschließlich für die Hilfe und es guckt da ja eh nie jemand rein, sondern nervt zuerst einmal den Support. :stupid:

Die wichtigsten Probleme mit dem Internet-Explorer auf Kundensystemen lagen darin begründet, daß der IE oftmals Webseiten von Festplatte und teilweise aus dem Intranet als "unsicher" einstuft und dann teilweise oder ganz wahllos JavaScript und sogar CSS sperrt.
Dafür bietet H&M einen Mini-Webserver an, den ich aber aus Sicherheitsgründen nur ablehnen kann, da er von Sicherheit nichts weiß und praktisch alle Dateien in seinen Sichtbarkeitsrichtlinien (Rechte des Benutzers, in welchem das Programm läuft) ungeschützt freigibt. Hab stattdessen einen TidHTTPServer in unsere Serveranwendung integriert, der dann nur die Dateien der Hilfe ausliefert. "Nur" diese Dateien werden dann von der Festplatte geladen, aber man kann sie auch in die Resourcen oder in eine Datenbank legen.

froschprinz 3. Jul 2014 10:31

AW: Darstellungsfehler im Twebbrowser
 
Also ich bin nun eigentlich schon zufrieden, da mein TWebbrowser mit der oben dargestellten Methode jetzt wieder sauber darstellt. Und "nerver change a running system!
Da meine Kunden selber auswählen, welche Internetseiten sie anzeigen möchten, kann ich auch nicht am HTML-Code rumspielen. Ich kann ihnen nur mit meiner Software einfache Tools liefern, wie sie die Seiten "dicht" machen können. Und das funktioniert bei mit mit TWebbrowser.

froschprinz 30. Sep 2015 11:09

AW: Darstellungsfehler im Twebbrowser
 
Hallo,

ich habe mal wieder ein Problem mit dem TWebbrowser:

Bei z.B. der Internetseite http://learningapps.org/ öffnet sich, wenn ich auf Anmelden klicke, nur eine leere Seite. Im MS-Internetexplorer funktioniert das Anmelden. Einer meiner Kunden möchte aber genau diese Seite mit meiner Software nutzen.
Hat jemand eine Idee, woran das liegen könnte? Es muss doch eine Möglichkeit geben, derartige Seiten mit dem TWebbrowser zum Funktionieren zu bekommen?!?!
Ich vermute es hängt irgenwie mit JAVA-Script zusammen.

hathor 30. Sep 2015 13:22

AW: Darstellungsfehler im Twebbrowser
 
Mit neueren Versionen geht es auch nicht.

froschprinz 30. Sep 2015 13:58

AW: Darstellungsfehler im Twebbrowser
 
Wenn es nicht an der Delphi Version liegt, woran dann? Hat keiner eine Idee? Irgendwie muss das doch zu schaffen sein!

nahpets 30. Sep 2015 16:58

AW: Darstellungsfehler im Twebbrowser
 
Schau mal bitte, ob Dir das eventuell hilft: http://www.delphipraxis.net/1314568-post12.html

hathor 30. Sep 2015 18:30

AW: Darstellungsfehler im Twebbrowser
 
Liste der Anhänge anzeigen (Anzahl: 1)
Mein Browser in DELPHI XE7, WIN8.1 meldet sich mit 9.11.9600.xxxxx

froschprinz 1. Okt 2015 07:29

AW: Darstellungsfehler im Twebbrowser
 
Hallo ,

erstmal danke für die Antworten.

Nahpets: Mein Gedanke war zuerst auch dass es an "\FEATURE_BROWSER_EMULATION" liegen könnte. Hat aber leider in diesem Fall nichts gebracht.

Hathor: Bitte klick doch noch auf Anmelden, und schau, ob du dich anmelden könntest, oder ob nur ein leeres Fenster kommt. Die Startseite geht bei mir auch.

hathor 1. Okt 2015 08:15

AW: Darstellungsfehler im Twebbrowser
 
Liste der Anhänge anzeigen (Anzahl: 4)
Das Fenster ist leer bei XE7.
Im IE11 geht es natürlich.
JAVASCRIPT funktioniert aber bei XE7 - siehe XE7-LTE.
Jetzt bin ich ein Stück weiter: Scriptfehler.
Ein Teil des Login-Fensters ist zu sehen.

hathor 1. Okt 2015 09:23

AW: Darstellungsfehler im Twebbrowser
 
Liste der Anhänge anzeigen (Anzahl: 1)
Bis das vollständige LOGIN-Fenster zu sehen ist, gibt es zahlreiche Scriptfehler-Meldungen.
So ist es nicht brauchbar.

froschprinz 1. Okt 2015 09:26

AW: Darstellungsfehler im Twebbrowser
 
Hallo,

wie hast du das geschafft, dass das Loginfenster kommt? Am Anfang ginge es bei Dir doch auch nicht?

hathor 1. Okt 2015 09:40

AW: Darstellungsfehler im Twebbrowser
 
Warten...
JAVASCRIPT ist seeehr langsam.
Wie man sehen kann, fehlt am Ende noch die runde Grafik.
Das kann aber daran liegen, dass ich die HTML-Seite von der Festplatte holte.

froschprinz 1. Okt 2015 09:53

AW: Darstellungsfehler im Twebbrowser
 
Liste der Anhänge anzeigen (Anzahl: 1)
Warten scheint bei mir nichts zu bringen, Ich habe jetzt 10 Min gewartet.
Also liegt es vielleicht doch an der Delphiversion?

greenmile 1. Okt 2015 10:01

AW: Darstellungsfehler im Twebbrowser
 
Nein daran kann es eigentlich nicht liegen.

froschprinz 1. Okt 2015 12:01

AW: Darstellungsfehler im Twebbrowser
 
Wenn nicht an der Delphi Version, woran kann es dann liegen?
Hathor: Kannst Du mir mal deine EXE schicken, mit der Du das getestet hast? Dann kann ich probieren, ob die bei mir auch funktioniert (löst das Problem noch nicht, aber vielleicht ein Schritt weiter)

Sir Rufo 1. Okt 2015 12:27

AW: Darstellungsfehler im Twebbrowser
 
Ich markiere einmal den wichtigsten Teil:
Zitat:

Zitat von hathor (Beitrag 1317383)
Warten...
JAVASCRIPT ist seeehr langsam.
Wie man sehen kann, fehlt am Ende noch die runde Grafik.
Das kann aber daran liegen, dass ich die HTML-Seite von der Festplatte holte.


hathor 1. Okt 2015 12:43

AW: Darstellungsfehler im Twebbrowser
 
Zitat:

Zitat von Sir Rufo (Beitrag 1317394)
Ich markiere einmal den wichtigsten Teil:
Zitat:

Zitat von hathor (Beitrag 1317383)
Warten...
JAVASCRIPT ist seeehr langsam.
Wie man sehen kann, fehlt am Ende noch die runde Grafik.
Das kann aber daran liegen, dass ich die HTML-Seite von der Festplatte holte.


Das Laden einer Webseite bzw. eines HTML-Files von der Festplatte soll servereigene Einflüsse (z.B. TIMEOUT nach 45sec) ausschliessen.
Übrigens:
Die Webseite hat ein TIMEOUT von 500ms !
Im Sourcecode gefunden: setTimeout('checkLoggedIn()',500);

hathor 1. Okt 2015 13:21

AW: Darstellungsfehler im Twebbrowser
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von froschprinz (Beitrag 1317390)
Hathor: Kannst Du mir mal deine EXE schicken, mit der Du das getestet hast? Dann kann ich probieren, ob die bei mir auch funktioniert (löst das Problem noch nicht, aber vielleicht ein Schritt weiter)

Button TEST-local anklicken und warten...

Bernhard Geyer 1. Okt 2015 13:31

AW: Darstellungsfehler im Twebbrowser
 
Verhält sich der TWebbrowser aufgrund der Super-Logik von MS bei verwendung als ActiveX nicht im "Quatsch-Modus" (Querks?) bis man in der Registry für seine Anwendung definiert das er sich als IE 10/11 verhalten soll:gruebel:

hathor 1. Okt 2015 13:32

AW: Darstellungsfehler im Twebbrowser
 
Ich glaube, den Fehler gefunden zu haben:

Die Zeile im HTML
xmlHttpReq.open('POST', "https://learningapps.org/login", true);
wird wahrscheinlich vom DELPHI-WebBrowser nicht verarbeitet.

hathor 1. Okt 2015 13:35

AW: Darstellungsfehler im Twebbrowser
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1317402)
Verhält sich der TWebbrowser aufgrund der Super-Logik von MS bei verwendung als ActiveX nicht im "Quatsch-Modus" (Querks?) bis man in der Registry für seine Anwendung definiert das er sich als IE 10/11 verhalten soll:gruebel:

Falls Du WebBrowser.RegisterAsBrowser:= true; meinst...
ist TRUE.

Olli73 1. Okt 2015 14:40

AW: Darstellungsfehler im Twebbrowser
 
Das hier scheint zu helfen:

Delphi-Quellcode:
procedure TForm1.WebBrowser1BeforeNavigate2(ASender: TObject;
  const pDisp: IDispatch; const URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
  if URL = 'javascript:void(0)' then begin
    Cancel := True;
  end;
end;

Bernhard Geyer 1. Okt 2015 14:41

AW: Darstellungsfehler im Twebbrowser
 
Zitat:

Zitat von hathor (Beitrag 1317405)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1317402)
Verhält sich der TWebbrowser aufgrund der Super-Logik von MS bei verwendung als ActiveX nicht im "Quatsch-Modus" (Querks?) bis man in der Registry für seine Anwendung definiert das er sich als IE 10/11 verhalten soll:gruebel:

Falls Du WebBrowser.RegisterAsBrowser:= true; meinst...
ist TRUE.

Nö. Das da meine ich: http://stackoverflow.com/questions/3...-on-ie-version

froschprinz 3. Okt 2015 08:35

AW: Darstellungsfehler im Twebbrowser
 
Hey Leute!

Sorry, dass ich erst jetzt Antworte - ich war leider verhindert.

Also eines muss ich schon mal sagen: Ihr seid echt der Hit!!:-D

Der Tipp von Oli73 funktioniert bei mir. Wichtig dabei natürlich, dass die Anwendung in der Reistry bei "\FEATURE_BROWSER_EMULATION" registriert ist.

Kann mir jemand sagen, was der Befehl 'javascript:void(0)' eigentlich machen soll?

Also vielen Dank für Eure Hilfe!

nahpets 3. Okt 2015 10:25

AW: Darstellungsfehler im Twebbrowser
 
Prüft meines Wissens nur, ob Javascript funktioniert.

Funktionierts nicht, gibts 'nen Fehler.

Der TWebBrowser hat doch das Attribut Silent. Normalerweise hab' ich das auf False stehen. Ist's auf True, werden einem die Javascriptfehler um die Ohren gehauen.
Schau doch einfach mal, welche Fehlermeldungen Du da bei Deinem konkreten Problem so alles bekommst.
Eventuell erhälts Du ja dadurch einen Hinweis auf ein konkretes Problem.

Bei Bedarf hier dann weiterfragen ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:30 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz