Beispiel mit CEF4Delphi?

Rund um die LCL und andere Komponenten
Antworten
Epcop
Beiträge: 163
Registriert: Di 29. Mai 2012, 09:36

Beispiel mit CEF4Delphi?

Beitrag von Epcop »

Hallo,

kann mir jemand ein einfaches Beispiel für CEF4Delphi zeigen?

Lazarus 4 auf Debian.
Ich habe auf der Github Seite das Package installiert und die dazu passenden Binarys. Die Binarys habe ich in mein Projekt geschoben und diese werden auch gefunden.
Wichtig ist erstmal zu erwähnen, dass man CEF4Delphi wirklich von der Github Seite nimmt, weil im OPM liegt eine veraltete Version. Die fordert alte Binarys, habe da lange gebraucht bis ich das gemerkt habe. Weiterhin muss man auch nur die Binary Dateien von der Github Seite nehmen und nicht die aktuellsten, die könnten sonst auch nicht übereinstimmen. Und die Architektur von Lazarus und die anderen Dateien muss auch übereinstimmen.

Orientiert an der Demo, habe ich das ChromiumWindow Fenster auf die Form gezogen und dann versucht ChromiumWindow1.LoadURL() eine Seite zu laden. Aber das brachte nichts. Auch etliche andere Versuche brachten keinen Erfolg.

Keiner der mitgelieferten Demos vom Packages lies sich kompilieren. Mir scheint, es gibt dort noch Windowszeilen, die ich aber einfach mal auskommentiert habe. Danach scheint es zu laufen, doch die Demos melden dann fehlende CEF Binarys. Ich weiß, dass die bei meinen Versuchen ja funktionierten. Deshalb muss in den Demos irgendwo spezifische Pfadangaben angegeben sein, die nicht auf das Hauptverzeichnis zeigen. Das habe ich aber nirgends gefunden.

Wie auch immer, ich will nur eine einfache lokale HTML Datei in der Form anzeigen.

Hat schon jemand unter Linux mit CEF4Delphi eine einfache Anwendung damit geschafft?

LG
Epcop

MmVisual
Beiträge: 1605
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Beispiel mit CEF4Delphi?

Beitrag von MmVisual »

Wenn es nur HTML Seiten ohne Java oder andere Scripte sein sollen, dann kann man den
https://github.com/BerndGabriel/HtmlViewer
verwenden. Den kann man aus OPM installieren.
Ich verwende diese Komponente schon lange.
Dieser funktioniert nativ, also hat keine externe Abhängigkeiten von Fremdprogrammen (Google/Mozilla/Microsoft).

Man kann die Daten von Dateien laden oder aus einem TStream, was die Verwendung viel flexiebler macht. (z.B. Dateien als Ressource packen, in die EXE mit linken und dann per RessourceStream in der HTML Ansicht zeigen.)
EleLa - Elektronik Lagerverwaltung - www.elela.de

Epcop
Beiträge: 163
Registriert: Di 29. Mai 2012, 09:36

Re: Beispiel mit CEF4Delphi?

Beitrag von Epcop »

Danke für die Info. Ich war schon dabei, mir was eigenes zu programmieren - mal sehen ob ich Lust habe es weiter zu machen. Und CEF4Delphi will ich trotzdem noch versuchen ob ich es zum laufen bekommen. Die Binarys haben aber eine stolze Größe. Da ist der HTML Viewer für gelegentliches Darstellen deutlich schlanker und besser geeignet.

Ich habe ihn mal kurz ausprobiert.
Der HtmlViewer aus dem OPM führt bei mir ständig zu einen Absturz von Lazarus. Da lässt er sich gar nicht verwenden.

Von deiner URL aus geht es.
Nummerische Aufzählen werden bei mir leicht versetzt dargestellt, aber damit kann ich leben.

Dann habe ich festgestellt:
wenn in dem HTML Code <abbr> steht, bricht das Programm ebenfalls mit einer Fehlermeldung ab. Zum Beispiel

Code: Alles auswählen

<p>Das ist <abbr title="HyperText Markup Language">HTML</abbr> Text mit einer Abkürzung.</p>
Nicht das ich das unbedingt brauchen würde, aber ich finde es spannend.

Ansonsten läuft er bisher ganz gut. Habe allerdings jetzt nur ein bisschen damit herumgetestet.

Wird der HTMLViewer noch weiterentwickelt?

Benutzeravatar
theo
Beiträge: 10973
Registriert: Mo 11. Sep 2006, 19:01

Re: Beispiel mit CEF4Delphi?

Beitrag von theo »

Epcop hat geschrieben: Fr 15. Aug 2025, 09:46 Wird der HTMLViewer noch weiterentwickelt?
Wer weiss? Vielleicht durch dich? :wink:

Ich benutze den schon lange in meinem Email Vorschau-Progrämmchen um HTML Mails anzuschauen.
Das funktioniert für den Hausgebrauch erstaunlich gut.
Es gibt schon manchmal Darstellungsfehler, aber meistens formatiert er vernünftig, so dass man die Email gut lesen kann.
Professionellen Ansprüchen genügt er natürlich nicht, wenn man damit beliebige Websites ("In the wild") anschauen will, aber für definierte Layouts/HTML ohne Scripts (Help-Viewer, Wiki etc.) ist er zu gebrauchen.

Soner
Beiträge: 753
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: Beispiel mit CEF4Delphi?

Beitrag von Soner »

Bei CEF4Delphi ist genug Beispiele beigepackt.
Benutzt du nicht das von Salvador.
https://github.com/salvadordf/CEF4Delphi

wp_xyz
Beiträge: 5241
Registriert: Fr 8. Apr 2011, 09:01

Re: Beispiel mit CEF4Delphi?

Beitrag von wp_xyz »

Epcop hat geschrieben: Fr 15. Aug 2025, 09:46 Ich habe ihn mal kurz ausprobiert.
Der HtmlViewer aus dem OPM führt bei mir ständig zu einen Absturz von Lazarus. Da lässt er sich gar nicht verwenden.
Habe mir gerade den HtmlViewer aus OPM in einer Manjaro-VM installiert. Der folgende Minimal-Code für eine Form mit HtmlViewer und folgendem OnCreate-Handler machte keine Probleme:

Code: Alles auswählen

procedure TForm1.FormCreate(Sender: TObject);
begin
  FrameViewer1.LoadFromFile (some_html_file.html);
end;
Und auch das FrameViewer-Demo lief ohne Probleme.

Das war auf gtk2. Schalte ich dagegen um auf gtk3, qt5 oder qt6 gibt es Abstürze (jedoch nicht der IDE). Ich habe dann noch von Bernd Gabriels github installiert: da läuft das Minimal-Programm auch auf qt5, aber auf gtk3 und qt6 stürzt es ebenfalls ab.

Nicht ganz das Wahre... Der HTMLViewer wird zwar auf Bernd Gabriels Seite weiterentwickelt, aber wahrscheinlich wird der Lazarus-Anteil eher auf Sparflamme sein. Und vor allem kümmert sich niemand darum, dass die Änderungen von dort in den OPM eingepflegt werden (die OPM-Version ist anscheinend hinter der github-Version) - ich möchte diesen Job nicht auch noch übernehmen...

Eine ganze andere Idee: Das TurboPower IpHTMLPanel ist direkt in Lazarus enthalten, ist im Prinzip aber tote Software (nachdem Turbo Power das Projekt aufgegeben hat) und hat einige Schwächen gegenüber dem HTMLViewer. Aber weil es eben im Lazarus enthalten ist, wird es vom Lazarus-Team gepflegt. Es läuft garantiert unter allen Widgetsets, denn es wird für die Anzeige der HTML-Hilfeseiten verwendet. Ich habe es in einigen meiner Programme verwendet, und es reicht aus.

Probier's doch einfach mal aus.

MmVisual
Beiträge: 1605
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Beispiel mit CEF4Delphi?

Beitrag von MmVisual »

Bei der THtmlVeiewer Komponente verwende ich die Version 11.09, denn damit kann ich bei einem Druck mehrere Seiten in eine PDF packen. bei der 11.10 klappt das nicht mehr. Es ist praktisch um aus einer Ansammlung von HTML Dateien eine Komplett Doku als PDF zu bekommen.

Die Events die ich benötige, beispielhaft:

Code: Alles auswählen

OnHotSpotClick()
s := UTF8Encode(SRC);
If strlcomp(s, 'http') Then ÖffneExternenWebbroseWeilKeineLokaleDatei(); Exit;
html.LoadFromFile(s);
If LinkMitAnkerPunkt Then html.PositionTo(UTF8Decode(sAnker));
Die Bilder und andere Dateien nachladen:

Code: Alles auswählen

OnhtStremRequest() / OnImageRequest()
s := UTF8Encode(SRC);
TFileStream.Create(s);
Stream.CopyFrom(TFileStream);
Also 3 Events, gehen auf 2 Funktionen. Das reicht bei meiner Anwendung aus.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Antworten