Webbrowser/de

From Lazarus wiki

Deutsch (de) English (en) español (es) русский (ru)

Diese Seite fasst die unterschiedlichen Varianten zusammen, HTML-Seiten von einem Pascal-Programm aus anzuzeigen. Es reicht von "einen externen Browser aufrufen" bis zu "Darstellung einer HTML-Seite im Form".

Einen externen Webbrowser mit einer Seite/URL starten

OpenURL

OpenURL ist die einfachste Form eine URL anzuzeigen. Diese Prozedur erkennt den voreingestellten Browser und öffnet eine URL mit den angegebenen Parametern. Sie kann benutzt werden um:

  • eMail zu senden 'mailto:einname@EineAddresse?subject=:::Betreff'
  • eine Webadresse zu öffnen z.B:'http://'
  • lokale Dateien anzuzeigen'file:///'.
uses LCLIntf;
...
OpenURL('http://www.lazarus.freepascal.org');

Den voreingestellten Webbrowser finden

Jede Plattform hat ihren eigenen Mechanismuss um den voreingestellten Browser zu definieren. Die LCL-Unit lazhelphtml enthält eine Klasse THTMLBrowserHelpViewer um einen Webbrowser für das LCL-Hilfe-System zu starten. Man kann deren Methode FindDefaultBrowser benutzen um den voreingestellten browser und dessen Startparameter herauszufinden. Zum Beispiel:

uses 
  Classes, ..., LCLProc, LazHelpHTML;

...

implementation

procedure TMainForm.Button1Click(Sender: TObject);
var
  v: THTMLBrowserHelpViewer;
  BrowserPath, BrowserParams: string;
begin
  v:=THTMLBrowserHelpViewer.Create(nil);
  v.FindDefaultBrowser(BrowserPath,BrowserParams);
  debugln(['Path=',BrowserPath,' Params=',BrowserParams]);
  v.Free;
end;

Unter Ubuntu (Linux) zum Beispiel ergibt diese:

Browser=/usr/bin/xdg-open Params=%s

Unter Windows:

Browser=C:\windows\system32\rundll32.exe Params=url.dll,FileProtocolHandler %s

Start des Browsers

Wenn man die Kommandozeile und Parameter für den Browser kennt kann man TProcessUTF8 benutzen um den Browser zu starten:

uses 
  Classes, ..., LCLProc, LazHelpHTML, UTF8Process;

...

implementation

procedure TMainForm.Button1Click(Sender: TObject);
var
  v: THTMLBrowserHelpViewer;
  BrowserPath, BrowserParams: string;
  p: LongInt;
  URL: String;
  BrowserProcess: TProcessUTF8;
begin
  v:=THTMLBrowserHelpViewer.Create(nil);
  try
    v.FindDefaultBrowser(BrowserPath,BrowserParams);
    debugln(['Path=',BrowserPath,' Params=',BrowserParams]);

    URL:='http://www.lazarus.freepascal.org';
    p:=System.Pos('%s', BrowserParams);
    System.Delete(BrowserParams,p,2);
    System.Insert(URL,BrowserParams,p);

    // Browser starten
    BrowserProcess:=TProcessUTF8.Create(nil);
    try
      BrowserProcess.CommandLine:=BrowserPath+' '+BrowserParams;
      BrowserProcess.Execute;
    finally
      BrowserProcess.Free;
    end;
  finally
    v.Free;
  end;
end;

Eine Webbrowser-Komponente in die Applikation integrieren

Turbopower internet pro-Elemente benutzen

Lazarus stellt das Paket TurboPowerIPro (lazarus/components/turbopower_ipro/turbopoweripro.lpk) bereit. Es hat folgende Vorzüge:

  • Es enthält Steuerelemente für den Form-Designer. Bim installieren in die IDE, erhält man neue Komponenten in der Komponenten-Palette, die man einfach, wie jedes andere LCL-Element benutzen kann.
  • Es ist vollkommen in Pascal geschrieben. Es arbeitet deshalb von Vorn herein platformübergreifend, ohne zusätzlichen Installationsaufwand.
  • Man hat volle Kontrolle, welche Dateien/URLs geöffnet werden.
  • Es hat nicht alle Features eines 'richtigen' Webbrowsers, z.B: Kein Multimedia-Zeug, Javascript oder Flash, dies muß man selbst implementieren.

Es exitieren Beispiele in lazarus/components/turbopower_ipro/examples die demonstrieren, wie man eine lokale HTML-Datei mit Bildern anzeigt, Hyperlinks verfolgt mit Historie.

QT Webkit

Benutzt man das Qt-WidgetSet (-> Qt_Interface) kann man auch das Qt-WebKit benutzen um einen Browser in ein LCL-Form zu intrgrieren.

Lazarus LCL/Qt WebKit Demo verfügbar auf FPC Qt4 Binding Web Page

THtmlPort

THtmlPort ist eine Lazarus/Free Pascal Version von Dave Baldwins HTML-Komponenten. Enthalten ist u.a. THtmlViewer, TFrameViewer und TFrameBrowser.

fpCEF3

Chromium Embedded Framework für Free Pascal

GeckoPort

GeckoPort ist eine Lazarus/Free Pascal Version von Takanori Ito's Gecko SDK für Delphi. Enthält u.a. TGeckoBrowser-Komponente.

LazActiveX

Importiert die Internet Explorer Typen-Bibliothek. (nur für Windows)

LazWebKit

Webkit für GTK2

lazwebkit

Siehe auch