AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi EmbeddedWB für Seattle
Thema durchsuchen
Ansicht
Themen-Optionen

EmbeddedWB für Seattle

Ein Thema von ScharfeMietze · begonnen am 27. Okt 2015 · letzter Beitrag vom 17. Feb 2016
Antwort Antwort
ScharfeMietze

Registriert seit: 5. Mär 2014
165 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#1

EmbeddedWB für Seattle

  Alt 27. Okt 2015, 21:25
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
  Mit Zitat antworten Zitat
forchersepp

Registriert seit: 31. Jan 2007
1 Beiträge
 
#2

AW: EmbeddedWB für Seattle

  Alt 28. Okt 2015, 20:09
leider genau das gleiche problem...
  Mit Zitat antworten Zitat
Bambini
(Gast)

n/a Beiträge
 
#3

AW: EmbeddedWB für Seattle

  Alt 29. Okt 2015, 09:49
In Delphi Seattle gab es einen gravierenden Bug fix.
Eine Anleitung für den EmbeddedWB ist dort angegeben:
https://marc.durdin.net/2012/07/unde...-olectrls-pas/
  Mit Zitat antworten Zitat
ScharfeMietze

Registriert seit: 5. Mär 2014
165 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#4

AW: EmbeddedWB für Seattle

  Alt 29. Okt 2015, 22:21
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;
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: EmbeddedWB für Seattle

  Alt 29. Okt 2015, 22:43
In Delphi Seattle gab es einen gravierenden Bug fix.
Eine Anleitung für den EmbeddedWB ist dort angegeben:
https://marc.durdin.net/2012/07/unde...-olectrls-pas/
Ich glaub ich muss da auch mal ein paar Codezeilen für Seatle "Aus-$IFDEFEN" ...


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" ...
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
cacofony

Registriert seit: 8. Sep 2014
1 Beiträge
 
#6

AW: EmbeddedWB für Seattle

  Alt 17. Feb 2016, 04:45
An updated repository with these changes plus an IDE crash fix.
https://github.com/littleearth/Delphi-EmbeddedWB
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:20 Uhr.
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