![]() |
EmbeddedWB für Seattle
mein
EmbeddedWB für Xe7 das bisher wunderbar funktionierte wirft mir nach der Instalation einen Ieframe.dll fehler aus (Zugriffsverletzung). Wenn ich nur versuche in der IDE ein Fenster zu schließen, das den EmbeddedWB browser erhält und schmeißt auch beim speichern fehler. Das erstellt programm selbst lässt sich starten und funktioniert wunschgemäß. Es geht nur um Radstudio selbst. Auch stürzt beim Beenden Seattle ab. Testweise auch auf einem anderen PC instaliert, gleiches Ergebnis. Ich hoffe es hat jemand einen EmbeddedWB für Seattle der den fehler nicht produziert. Gruß SM |
AW: EmbeddedWB für Seattle
leider genau das gleiche problem...
|
AW: EmbeddedWB für Seattle
In Delphi Seattle gab es einen gravierenden Bug fix.
Eine Anleitung für den EmbeddedWB ist dort angegeben: ![]() |
AW: EmbeddedWB für Seattle
THX für den Link!
Ich poste hier die Änderungen. Ich kann auf den ersten Blick feststellen, das das Absturzchaos endete. Ausführliche Tests waren noch nicht möglich. Bisher ist alles wie es soll. Gruß SM
Delphi-Quellcode:
procedure TEmbeddedWB.SetUserAgentInt;
var Control: IOleControl; begin if FUserAgent <> FUserAgentInt then begin RestoreUserAgentReg; if DefaultInterface.QueryInterface(IOleControl, Control) = 0 then with (Application as IOleControl) do begin FUserAgentInt := FUserAgent; Control.OnAmbientPropertyChange(DISPID_AMBIENT_USERAGENT); //_Release; gelöscht Seattle fix end; end; end; procedure TCustomEmbeddedWB.SetDesignMode(const Value: Boolean); var Control: IOleControl; begin FDesignMode := Value; if DefaultInterface.QueryInterface(IOleControl, Control) = 0 then with (Application as IOleControl) do begin OnAmbientPropertyChange(DISPID_AMBIENT_USERMODE); //_Release; gelöscht Seattle fix end; end; procedure TCustomEmbeddedWB.SetDownloadOptions(const Value: TDownloadControlOptions); begin FDownloadControlOptions := Value; UpdateDownloadControlValues; with (Application as IOleControl) do begin OnAmbientPropertyChange(DISPID_AMBIENT_DLCONTROL); //_Release; gelöscht Seattle fix end; end; procedure TCustomEmbeddedWB.SetUserInterfaceOptions(const Value: TUserInterfaceOptions); begin FUserInterfaceOptions := Value; UpdateUserInterfaceValues; with (Application as IOleControl) do begin OnAmbientPropertyChange(DISPID_AMBIENT_DLCONTROL); //_Release; gelöscht Seattle fix end; end; function GetBmpFromBrowser(Document: IDispatch; Handle: THandle; Width, Height: Integer; FileName: string): Boolean; var ViewObject: IViewObject; sourceDrawRect: TRect; ScreenImg: Graphics.TBitmap; begin Result := False; if DocumentLoaded(Document) then try Document.QueryInterface(IViewObject, ViewObject); if Assigned(ViewObject) then try ScreenImg := TBitmap.Create; ScreenImg.Height := Height; ScreenImg.Width := Width; sourceDrawRect := Rect(0, 0, ScreenImg.Width, ScreenImg.Height); ViewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, Handle, ScreenImg.Canvas.Handle, @sourceDrawRect, nil, nil, 0); ScreenImg.SaveToFile(FileName); Result := True; finally // ViewObject._Release; gelöscht Seattle fix end; except Result := False; end; end; function InvokeCMD(Document: IDispatch; InvokeIE: Boolean; Value1, Value2: Integer; var vaIn, vaOut: OleVariant): HRESULT; var CmdTarget: IOleCommandTarget; PtrGUID: PGUID; begin // New(PtrGUID); Result := S_FALSE; if InvokeIE then begin New(PtrGUID); PtrGUID^ := CLSID_WebBrowser; end else PtrGuid := PGUID(nil); if DocumentLoaded(Document) then try Document.QueryInterface(IOleCommandTarget, CmdTarget); if CmdTarget <> nil then Result := CmdTarget.Exec(PtrGuid, Value1, Value2, vaIn, vaOut); // hinzugefügt Seattle fix // try // Result := CmdTarget.Exec(PtrGuid, Value1, Value2, vaIn, vaOut); // finally // CmdTarget._Release; // end; except end; Dispose(PtrGUID); end; |
AW: EmbeddedWB für Seattle
Zitat:
Meine Vermutung war hier das eine IE-interne Zirkuläre Referenz aufgebaut würde. Aber wenn der Fix so einfach ist kann man den evtl. gleich in den VCL-Units (hab eh ein D6-Fix-Pfad mit allen gefixten Units) einbauen und die Workaround komplett ausbauen. Mal schauen was besser "aussieht" ... |
AW: EmbeddedWB für Seattle
An updated repository with these changes plus an IDE crash fix.
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:41 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 by Thomas Breitkreuz