Wiki-KopieMirror

Dies ist ein Mirror des Wikis von pascal.chat. Bearbeiten, Verlauf und Anmeldung finden dort statt.

Webbrowser/de

Deutsch · English · Español · Русский

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:

pascal
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:

pascal
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:

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

Unter Windows:

text
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:

pascal
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 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


From the Free Pascal wiki, page "Webbrowser/de", as it stood on 2020-03-04 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Version 2, zuletzt geändert von WikiArchive .