Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   TWebbrowser in Delphi XE7 Starter (https://www.delphipraxis.net/186435-twebbrowser-delphi-xe7-starter.html)

Woodman 2. Sep 2015 17:38

TWebbrowser in Delphi XE7 Starter
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo allerseits,
das Thema wurde schon mehrfach behandelt, aber nicht für XE7 Starter.
Ich habe mir hier die TWebBrowser.zip geholt und entpackt.
Beim Einlesen von kommt zunächst diese Fehlermeldung:
Code:
[Window Title]
Fehler

[Content]
Projekt ....\Delphi\TWebBrowser\WebBrowserDelphiXEStarter.dproj kann nicht geladen werden
'false' ist kein gültiger Integerwert

[OK]
Ich habe diverse 'false'-Werte durch '0' ersetzt, dann ließ sich das Projekt zumindest laden. Beim versuch der Installation der Komponente kommt folgender Fehler:
Code:
[dcc32 Fehler] SHDocVw_TLB.pas(3206): E2033 Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen
und zwar bei allen Funktionen ähnlichen Konstrukts:
Delphi-Quellcode:
procedure TWebBrowser.Navigate(const URL: WideString);
begin
  DefaultInterface.Navigate(URL, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
end;
Aber: Wenn ich mit der Maus über den Funktionsnamen verweile, kommt dieser Hinweis:
http://www.delphipraxis.net/attachme...2&d=1441211701
Und die Parameter passen alle, sowohl von der Anzahl als auch vom Typ!

Weiß jemand Rat?

mkinzler 2. Sep 2015 17:41

AW: TWebbrowser in Delphi XE7 Starter
 
Wie ist EmptyParam definiert? Müsste ein OleVariant sein.

Woodman 2. Sep 2015 17:46

AW: TWebbrowser in Delphi XE7 Starter
 
Liste der Anhänge anzeigen (Anzahl: 1)
Korrekt!
http://www.delphipraxis.net/attachme...3&d=1441212337

hathor 2. Sep 2015 20:20

AW: TWebbrowser in Delphi XE7 Starter
 
Vielleicht verstehe ich etwas falsch:
Ist die Installation erfolgreich oder was verstehst Du darunter?

Ziehe TWebBrowser auf ein Formular.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  WebBrowser1.Navigate('www.web.de');
end;
//oder
procedure TForm1.Button2Click(Sender: TObject);
var s : WideString;
begin
  s:= 'www.web.de';
  WebBrowser1.Navigate(s);
end;

einbeliebigername 2. Sep 2015 23:25

AW: TWebbrowser in Delphi XE7 Starter
 
Hallo Woodman,

ich habe gerade keine XE7-Installation am laufen. Bei XE8 steht in System.Variants:
Delphi-Quellcode:
{.$DEFINE EMPTYPARAM_VAR}
{$IFDEF EMPTYPARAM_VAR}
var
  EmptyParam: OleVariant;   // "Empty parameter" standard constant which can be
  {$EXTERNALSYM EmptyParam}  // passed as an optional parameter
{$ELSE}
function EmptyParam: OleVariant;// "Empty parameter" standard constant that
{$EXTERNALSYM EmptyParam}       // can be passed as an optional parameter
{$ENDIF}
Was hat sich der Dichter dabei bloß gedacht? Darüber sollte man mal diskutieren!

Und dein Bild
Zitat:

Zitat von Woodman (Beitrag 1314481)

zeigt das EmptyParam bei dir einen Funktion ist. Der Fehler erscheint zu recht. Die Definition von EmptyParam ist für
Zitat:

Zitat von Woodman (Beitrag 1314479)
Delphi-Quellcode:
procedure TWebBrowser.Navigate(const URL: WideString);
begin
  DefaultInterface.Navigate(URL, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
end;

falsch. Bei den Starter-Versionen war glaube ich kein Sourcecode dabei. Schau doch trotzdem mal ob irgendwo in den XE7-Verzeichnissen eine System.Variants.pas liegt. Oder du machst daraus
Delphi-Quellcode:
procedure TWebBrowser.Navigate(const URL: WideString);
var
  MyEp: OleVariant;
begin
  MyEp:= EmptyParam;
  DefaultInterface.Navigate(URL, MyEp, MyEp, MyEp, MyEp);
end;
einbeliebigername.

Woodman 3. Sep 2015 07:44

AW: TWebbrowser in Delphi XE7 Starter
 
Zitat:

Zitat von einbeliebigername (Beitrag 1314503)
.... Bei den Starter-Versionen war glaube ich kein Sourcecode dabei. Schau doch trotzdem mal ob irgendwo in den XE7-Verzeichnissen eine System.Variants.pas liegt. Oder du machst daraus
Delphi-Quellcode:
procedure TWebBrowser.Navigate(const URL: WideString);
var
  MyEp: OleVariant;
begin
  MyEp:= EmptyParam;
  DefaultInterface.Navigate(URL, MyEp, MyEp, MyEp, MyEp);
end;
einbeliebigername.

Vielen Dank für die Rückmeldung, das werde ich heute noch probieren.:-D

Woodman 3. Sep 2015 08:06

AW: TWebbrowser in Delphi XE7 Starter
 
Ja, das war's
Delphi-Quellcode:
procedure Register;

resourcestring
  dtlServerPage = 'Internet';

  dtlOcxPage = 'Internet';

var EmptyParam: OleVariant;             // <<< Hier definiert

implementation

uses ComObj;
Ich habe EmptyParam in der 'SHDocVw_TLB.pas' neu definiert, und schon ließ sich die Komponente fehlerfrei installieren.:-D

Wie gut sie funktioniert, werde ich heute im laufe des Tage noch testen.


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