Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi NonVCL Browser Projekt (https://www.delphipraxis.net/168633-nonvcl-browser-projekt.html)

NickelM 1. Jun 2012 04:44

NonVCL Browser Projekt
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,

Ich hatte hier im Forum gefragt, wie ich die VCL Klasse TWebBrowser auf nonVCL umsetzten kann.
Mann sagte mir dann, dass es nicht einfach sei, da viele Interfaces zu inplementieren gibt.
Ich hab nach langem eine recht unschöne alternative gebaut und im Thread gepostet, aber da mich das störte hab ich mich mal an die Arbeit gemacht, um die TWebBrowser, nonVCL tauglich zumachen.

Da ich dies nicht brauche, aber viele hier im Forum nach einer Art NonVCL Browser gesucht haben, stelle ich mal meine Umsetzung hier herein. Bisher ist die Umsetzung noch nicht sauber bzw. unvollständig, daher kann es zu Fehler kommen. Ein Fehler ist mir bisher nur bekannt.

Der einen Fehler ist, wenn man die DP, wie im Test-Projekt aufruft, kommt ein Script-Fehler, der am IE liegt. Da ich als Test 2 Browser hab, kommt die Meldung 2mal. Wenn ich beide Meldungen beende stürtzt das Programm ab. Dies passiert bei der VCL Version nicht, und bisher weis ich noch nicht woran das liegt.
Da ja die VCL-Version von der Klasse TOleControl abstammt und meine nicht, hab ich ein paar Interfaces/Funktionen weggelassen, die "anscheinend" nicht benötig werden. Vielleicht hab ich ein paar zuviele weggemacht und daher kommt der Fehler. :oops:

Für Code-Optimierungen oder Fehlerbehebungen bin ich für Vorschläge offen. Ansonsten viel Spass mit der NonVCL Version des TWebBrowser's.

P.S. : Bitte nicht erschlagen falls ich irgendeine wichtige Funktion vergessen habe einzubinden.:oops: Bin noch recht neu in Interface in Klassen basis und versuche dies zuverstehen.
Bei ein paar Funktionen hab ich ein Kommentar dazugeschrieben, wofür ich eine Umsetzung bisher nicht habe oder fraglich ist, ob sie benötigt wird.

Gruß NickelM.

lbccaleb 1. Jun 2012 14:39

AW: NonVCL Browser Projekt
 
Danke für die Arbeit. Ich werde mir das auch mal genau ansehen.

Das erste was mir aufgefallen ist beim Test, es läuft nicht unter Delphi < 2007
Da solltest du CharInSet einfügen, da das noch nicht implementiert ist in älteren Delphi Versionen:

Delphi-Quellcode:
//...
  CoSearchAssistantOC = class
    class function Create: ISearchAssistantOC3;
    class function CreateRemote(const MachineName: string): ISearchAssistantOC3;
  end;

{$IFNDEF DELPHI12}
  function CharInSet(const C: Char; const testSet: TSysCharSet): boolean;
{$ENDIF}

implementation


uses ComObj;

{$IFNDEF DELPHI12}
  function CharInSet(const C: Char; const testSet: TSysCharSet): boolean;
  begin
    Result := C in testSet;
  end;

{$ENDIF}

{ TEventDispatch }

constructor TEventDispatch.Create(Control: TWebBrowser; EventIID : TGUID);
begin
  FControl := Control;
  FEventIID := EventIID;
end;

//...

NickelM 1. Jun 2012 15:11

AW: NonVCL Browser Projekt
 
Okay werd ich einfügen. Danke.

Ryzinski 11. Nov 2012 14:26

AW: NonVCL Browser Projekt
 
Is this threadsafe? Can proxy be set on each instance? Works on 64 bit?
Seems not to work on XE3..

madtom 11. Nov 2012 14:41

AW: NonVCL Browser Projekt
 
Hallo, für den Scriptfehler solltest Du
Delphi-Quellcode:
Silent := True;
einfügen, jedenfalls ist es bei TWebBrowser so. :-D

Ryzinski 11. Nov 2012 14:47

AW: NonVCL Browser Projekt
 
Seems not to work with XE3 :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:15 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