Beispiel mit CEF4Delphi?
Beispiel mit CEF4Delphi?
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
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
-
- 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?
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.)
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
Re: Beispiel mit CEF4Delphi?
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
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?
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>
Ansonsten läuft er bisher ganz gut. Habe allerdings jetzt nur ein bisschen damit herumgetestet.
Wird der HTMLViewer noch weiterentwickelt?
Re: Beispiel mit CEF4Delphi?
Wer weiss? Vielleicht durch dich?

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.
-
- 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?
Bei CEF4Delphi ist genug Beispiele beigepackt.
Benutzt du nicht das von Salvador.
https://github.com/salvadordf/CEF4Delphi
Benutzt du nicht das von Salvador.
https://github.com/salvadordf/CEF4Delphi
Re: Beispiel mit CEF4Delphi?
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: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.
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
begin
FrameViewer1.LoadFromFile (some_html_file.html);
end;
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.
-
- 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?
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:
Die Bilder und andere Dateien nachladen:
Also 3 Events, gehen auf 2 Funktionen. Das reicht bei meiner Anwendung aus.
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));
Code: Alles auswählen
OnhtStremRequest() / OnImageRequest()
s := UTF8Encode(SRC);
TFileStream.Create(s);
Stream.CopyFrom(TFileStream);
EleLa - Elektronik Lagerverwaltung - www.elela.de