![]() |
TWebBrowser-Control und Einstellmöglichkeiten
Ich habe hier das Problem das sich der IE über TWebbrowser-Gesteuert etwas anders verhälte als der "normale" IE.
Die Einstellung über den Registry-Key FEATURE_BROWSER_EMULATION ist schon gesetzt so das hier kein Emulierter IE7 mehr läuft. Ich habe hier zwei Probleme: 1, Eine HTML-Anwendung läuft gut Touch-Bedienbar im normalen IE. Embedded habe ich das Problem das pinch zoom Events nicht so verarbeitet werden wie gedacht. Die Anwendung erlaubt das normalerweise nur in definierten Bereichen. im TWebbrowser zoome ich aber die gesamte Anwendung (Was nicht gewünscht ist). In der Übergabe der Browser-Features stehen die Properties navigator.mspointer und navigator.pointer auf false. Im "richten" IE auf True 2, Die Anwendung startet zu klein gezoomt auf High-DPI-Devices (hier SurfacePro4 mit 200%/196dpi). Ich sehe als unterschied das im "richtigen" IE der Browser nur als Info ein Logische DPI-Größe hat (also 3000 Pixel "* 196 dpi" = 1500 Logische Pixel) und im TWebBrowser der IE die richtige DPI-Zahl sieht. Wie könnte man den TWebbrowser so einstellen das er sich hier auch wie ein "richtiger" IE verhält? |
AW: TWebBrowser-Control und Einstellmöglichkeiten
Keine Ahnung, ob ich deine Frage richtig verstehe, aber auch ich habe mich einige Stunden mit dem Zoomen im TWebBrowser beschäftigt. Ich habe eine Trackbar mit der der Benutzer den Zoom verändern kann. Hier paar Codeauschnitte:
Delphi-Quellcode:
procedure TfDokAnzeige.trackZoomChange(Sender: TObject);
var ZoomFac : OLEVariant; const OLECMDID_OPTICAL_ZOOM = 63; begin timer1.Enabled := False; lbZoom.Caption := 'Zoom ' + IntToStr(trackZoom.Position) + '%'; try If trackZoom.Position = WebBrowser1.OleObject.Document.ParentWindow.Screen.deviceXDPI * 100 / WebBrowser1.OleObject.Document.ParentWindow.Screen.logicalXDPI then begin panZoom.Visible := True; timer1.Enabled := True; Exit; end; except end; try ZoomFac := trackZoom.Position; WebBrowser1.ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, ZoomFac); panZoom.Visible := True; timer1.Enabled := True; except panZoom.Visible := False; end; end; procedure TfDokAnzeige.WebBrowser1DocumentComplete(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant); begin trackZoomChange(trackZoom); end; procedure TfDokAnzeige.Timer1Timer(Sender: TObject); begin try trackZoom.Position := WebBrowser1.OleObject.Document.ParentWindow.Screen.deviceXDPI * 100 / WebBrowser1.OleObject.Document.ParentWindow.Screen.logicalXDPI; except end; end; |
AW: TWebBrowser-Control und Einstellmöglichkeiten
Das ist ein richtiger IE. Eventuell ist nur das HTML-Dokument ungünstig?
Du musst im HTMLHeader spezifizieren, für welchen IE (9, 10, 11,..., Aktuellster) die Seite designt ist. ANsonsten verfällt der in nen Quirkmodus(IE7 iirc). Es kann sein, dass der Standalone IE den Quirkmodus unter bestimmten umständen unterdrückt. |
AW: TWebBrowser-Control und Einstellmöglichkeiten
Zitat:
Und der Doctype wäre in diesem Fall <!DOCTYPE html> |
AW: TWebBrowser-Control und Einstellmöglichkeiten
A) Von dem RegistryKey lässt man tunlichst die Finger. Globals rumgehacke ist immer müll.
B) An den anfang des Heads braucht es folgende Metainfos:
Code:
EDGE bedeutet hierbei "Höchste verfügbare". Wenns konsistent sein muss kann man sich auch eine spezifische version raussuchen.
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/> </head> Optional sind auch folgende nicht verkehrt:
Code:
<meta charset="utf-8"/>
|
AW: TWebBrowser-Control und Einstellmöglichkeiten
(Haupt-)PRoblem gelöst.
Der TWebbrowser läuft in einem Legacy-Modus in denen er meint keine Touch-Events zu können er sie aber doch ausführt. Mit dem Registry-Key ![]() kann man das für die eigene Anwendung deaktivieren. Schwubs verhält sich der IE11 im TWebBrowser wirklich wie ein IE11 und nicht wie eine undefinierbare Mischung aus IE7 und IE11. |
AW: TWebBrowser-Control und Einstellmöglichkeiten
Zitat:
Stehe gerade vor dem gleichen Problem. Ich muss eine Google Maps Karte im TWebBrowser anzeigen. Im IE wird die Karte und die Steuerungsobjekte richtig skaliert für High DPI, im TWebBrowser gar nicht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz