TlpHtmlPanel

Für Fragen von Einsteigern und Programmieranfängern...
wp_xyz
Beiträge: 3522
Registriert: Fr 8. Apr 2011, 09:01

Re: TlpHtmlPanel

Beitrag von wp_xyz »

hbr hat geschrieben:
Fr 1. Jan 2021, 23:58
Ja das Problem tritt nur mit transparenten Bilddateien im
<body background="pics/bildt.png">.
Ich habe gerade, weil ich dein transparentes png nicht laden kann (warum eigentlich nicht?), eines der transparenten Lazarus-Komponenten-PNGs genommen, und da sehe ich, dass der transparente Hintergrund schwarz wiedergegeben wird. Ist das das, was du als "vermatscht" bezeichnest? Sorry, ich kann mir darunter nichts konkretes vorstellen. Poste eine Screenshot.
hbr hat geschrieben:
Fr 1. Jan 2021, 23:58
Was ist denn mit dem align="center" ?
Das kann reingerutscht sein, als ich mich damals mit den Tabellen befasst habe. Da muss ich mich in ruhigen Stunden wieder reindenken. Kann etwas dauern, und ich verspreche nichts - das ist nicht einfach.

hbr
Beiträge: 254
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 1.6.0 FPC 3.0.0)
CPU-Target: 32/64,ARM(RPi)

Re: TlpHtmlPanel

Beitrag von hbr »

Ist schon OK.
Wie schon beschrieben funktioniert das "Center" nur mit einer Tabelle, DIV geht auch nicht.

Also ein Transparentes Bild hat natürlich einen schwarzen Hintergrund.
Nehme ich nun z.B. das png welches ich erstellt habe sieht das ganz normal und richtig aus (Bild1).

Scrolle ich nun mehrmals runter- rauf, sieht das so aus wie in (Bild2) Vermatscht.

Nun setze ich eine helle Hintergrundfarbe in Style (bgcolor: #E2E0D2) oder Body (<body background="picture/minus.png" bgcolor="#E2E0D2">) um eine Hintergrundfarbe zu definieren.

Dann müsste es wie in FireFox (Bild3) gezeigt aussehen, oder in allen anderen Browser.

Aber der Hintergrund bleibt nach wie vor Schwarz, bei mir in Laz 1.6 und 2.0.10 gleichermaßen.

helps.zip
(901.81 KiB) 10-mal heruntergeladen

hbr
Beiträge: 254
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 1.6.0 FPC 3.0.0)
CPU-Target: 32/64,ARM(RPi)

Re: TlpHtmlPanel

Beitrag von hbr »

Vielleicht hilft das ja bei der Fehler- CENTER Behebung.

<p align="center"><img src="picture/zurueck.jpg" width="137" height="36"></p>
Das geht nicht, Bild wird links angezeigt.

Setze ich jetzt aber vor der Bildpositionierung einen Return mit center ein
<p align="center"> anstelle von <p>&nbsp;</p> dann geht es.

Beispiel:
Funktioniert nicht!
<p>&nbsp;</p>
<p align="center"><img src="picture/zurueck.jpg" width="137" height="36"></p>
----------------------------------
Funktioniert!
<p align="center">&nbsp;</p>
<p align="center"><img src="picture/zurueck.jpg" width="137" height="36"></p>

Gruß

hbr
Beiträge: 254
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 1.6.0 FPC 3.0.0)
CPU-Target: 32/64,ARM(RPi)

Re: TlpHtmlPanel

Beitrag von hbr »

Nachtrag
<img src="picture/zurueck.jpg" width="137" height="36" align="center">
Funktioniert auch, jedoch nicht in Standard Browsern, da muss <p>,<div> oder <span> ausgerichtet werden.

Aber hiermit kann man leben, es müssen nur die html’s angepasst werden, ist halt nicht der Standard.

Bliebe dann nur noch das Problem Transparenz mit bgcolor.

Vermatscht das bei Dir auch beim scrollen wie bei mir?


Übrigens wie kann ich mit Laz V2.0.10 ein 32Bit Programm erstellen?
Bei Delphi 10.3 kann ich das auswählen.
Oder muss ich hierfür eine zusätzliche 32Bit Version installieren?

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 788
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Winux (L 2.0.11 FPC 3.2)
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: TlpHtmlPanel

Beitrag von fliegermichl »

hbr hat geschrieben:
Sa 2. Jan 2021, 11:33

Übrigens wie kann ich mit Laz V2.0.10 ein 32Bit Programm erstellen?
Bei Delphi 10.3 kann ich das auswählen.
Oder muss ich hierfür eine zusätzliche 32Bit Version installieren?
Ja es muss ein Crosscompiler installiert werden. Am einfachsten geht das mit fpcupdeluxe.

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

Re: TlpHtmlPanel

Beitrag von wp_xyz »

hbr hat geschrieben:
Sa 2. Jan 2021, 11:33
Bliebe dann nur noch das Problem Transparenz mit bgcolor.

Vermatscht das bei Dir auch beim scrollen wie bei mir?
Das IpHtmlPanel hat offenbar zwei Probleme mit dem Hintergrund:
(1) Transparente Bitmaps werden auf schwarzem Hintergrund gezeichnet, nicht auf dem Hintergrund des Canvas. Das kann man beheben indem man das PixelFormat des PaintbufferBitmaps auf 32-bit stellt. Nur ist dann kein Text mehr zu sehen, denn die LCL-Farben haben im 4.Byte den Wert 0, d.h. völlige Transparenz. Mit dem LazCanvas muss ich noch experimentieren, aber ich befürchte, der kann keine Textausgabe...
(2) Beim Scrollen erspart man sich offenbar das Updaten des Hintergrunds.
hbr hat geschrieben:
Sa 2. Jan 2021, 11:33
Übrigens wie kann ich mit Laz V2.0.10 ein 32Bit Programm erstellen?
Wie schon von fliegermichl erwähnt, einen Cross-Compiler installieren. Allerdings ist mir das Gefrickel, die Compilereinstellungen umzustellen zu viel Aufwand. Ich habe mir einfach die andere Version dazuinstalliert - Festplattenplatz ist billig. Bei der Zusatzinstallation darauf achten, dass die Option "Sekundäre Installation" ausgewählt ist.

hbr
Beiträge: 254
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 1.6.0 FPC 3.0.0)
CPU-Target: 32/64,ARM(RPi)

Re: TlpHtmlPanel

Beitrag von hbr »

OK,
dann wird das wohl nichts mit dem Gekacheltem Hintergrundbild und den Variablen Farben.
Irgendwelche Kompromisse muss man wohl immer in Kauf nehmen.
jedenfalls vielen Danke für die Mühe.

Bei mehreren Versionen kommt beim Start von Laz eine Update Meldung.
Wenn man Laz direkt ohne Projekt startet.
Was besagt die? Wenn man der zustimmt, dauert es unheimlich lange bis Laz startet.
Und was wird dann gemacht?

Gruß

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

Re: TlpHtmlPanel

Beitrag von wp_xyz »

hbr hat geschrieben:
Sa 2. Jan 2021, 17:46
dann wird das wohl nichts mit dem Gekacheltem Hintergrundbild und den Variablen Farben.
Irgendwelche Kompromisse muss man wohl immer in Kauf nehmen.
Einen Plan B zu haben, ist nie schlecht. Trotzdem solltest du Plan A nicht wegwerfen. Ich bin an dem Thema mit den transparenten PNGs dran, sehe aber gerade nicht, wo der Unterschied zu meiner funktioniernden Lösung und dem Code im IpHtmlPanel ist. Mal drüber schlafen...
hbr hat geschrieben:
Sa 2. Jan 2021, 17:46
Bei mehreren Versionen kommt beim Start von Laz eine Update Meldung.
Wenn man Laz direkt ohne Projekt startet.
Was besagt die? Wenn man der zustimmt, dauert es unheimlich lange bis Laz startet.
Und was wird dann gemacht?
Du meinst verschiedene Lazarus-Installationen? Da hast du wahrscheinlich keine "Secondary Installation" gemacht, die für jede Installation ein eigenes Konfigurationsverzeichnis verwendet. Bei der normalen Installation werden dieselben Konfigurationsdateiendateien von jeder Version verwendet; möglicherweise werden dabei alle installierten Units für die andere Version neu übersetzt, was natürlich dauert (nicht ganz sicher, weil ich immer getrennten Konfigurationen habe).

Im das zu vermeiden, musst du dir einen Platz für die Konfigurationsdateien überlegen, z.B. einen Ordner c:\LazConfigs. dann erstellst du in dem Ordner mit der 32-Bit Version von Lazarus 2.0.10 eine Datei "lazarus.cfg" mit folgendem Inhalt:

Code: Alles auswählen

--primary-config-path=C:\LazConfigs\lazarus-2.0.10
Wenn du nun Lazarus 2.0.10 neu startest, wird der Ordner c:\LazarusConfigs\lazarus-2.0.10 erzeugt, und es werden die Standard-Konfigurationsdateien dort gespeichert. Für's erste gleich der Hinweis: Alle deine Einstellungen sind damit weg, auch die installierten Zusatzkomponenten. Das musst du nochmals durchführen.

Dasselbe wiederholst du mit Lazarus 1.6 (das war doch die andere Version, oder?): also Datei mit Inhalt

Code: Alles auswählen

--primary-config-path=C:\LazConfigs\lazarus-1.6
als lazarus.cfg im Installationsordner von Laz 1.6 speichern. Laz 1.6. neu starten und neu konfigurieren.

Nun sind beide Versionen sauber getrennt und kommen sich nicht mehr in die Quere.

Falls du später nochmals eine andere Lazarus-Version installierst (z.b. Laz 2.0.10-32bit), dann solltest du im Installationsdialog darauf achten, das Kästenen "Sekundäre Installation" (o.ä.) anzukreuzen und im folgenden Bildschirm als Verzeichnis für die Konfigurationsdateien c:\LazConfigs\Lazarus-2.0.10-32bit anzugeben. Damit wird die lazarus.cfg automatisch erstellt und du startest sofort mit der getrennten Konfiguration.

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

Re: TlpHtmlPanel

Beitrag von wp_xyz »

Ach ja, noch vergessen: es gibt einen Workaround für das Hintergrundproblem. Und zwar öffnest du die Datei IpHtml.pas (im Ordner (lazarus)/components/turbopower_ipro/) und suchst die Prozedur "TIpHtmlInternalPanel.Paint". In der Mitte wird "Hyper.Render(...)" aufgerufen; der vorletzte Parameter ist "True" - setze ihn auf "False":

Code: Alles auswählen

      // render
      Hyper.Render(Canvas,
        Rect(
          ViewLeft, ViewTop,
          ViewLeft + (CR.Right - CR.Left),
          ViewTop + (CR.Bottom - CR.Top)
        ),
        ViewTop,
        ViewTop + (CR.Bottom - CR.Top),
        false, //True,
        Point(0, 0)
      )  
Damit wird die HTML-Ausgabe direkt auf den Canvas geschrieben, nicht in ein Zwischenbitmap, was letzendlich die Probleme macht. Mit dieser Änderung funktioniert bei mir der Hintergrund, auch der "Matsch" ist weg.

Allerdings sieht man dann das nächste Problem, den nicht transparenten Text...

hbr
Beiträge: 254
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 1.6.0 FPC 3.0.0)
CPU-Target: 32/64,ARM(RPi)

Re: TlpHtmlPanel

Beitrag von hbr »

Allerdings sieht man dann das nächste Problem, den nicht transparenten Text...
Wieso, versteh ich nicht!
Mit setzen von "False" ist doch schon die hälfte erreicht!
Der Hintergund ist allerdings Weiss.
Es müste jetzt nur noch das "bgcoller" greifen.
Z.B. <body background="picture/minus.png" bgcolor="#BCE6E6">
oder andere Werte.

Wenn die Darstellung wie im Firefox aussieht "mein ..info.html",
dann wäre alles gut.

Gruß

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

Re: TlpHtmlPanel

Beitrag von wp_xyz »

In der Trunk-Version sollte nun auch wieder funktionieren, dass Text ohne Hintergrundfarbe über einem Bitmap-Hintergrund transparent ausgegeben wird. (*)

Die Hintergrundfarbe des Body-Nodes sollte dort schon seit längerem funktionieren. Es gibt dafür auch ein Property "BgColor" des IpHtmlPanel. Und es gibt jetzt auch ein Property "UsePaintBuffer", so dass die oben erwähnte Änderung im Quelltext nicht mehr nötig ist.

(*) EDIT:
Habe gerade gesehen, dass es noch immer noch 100% funktioniert... Ist das ein Sch...!

EDIT:
Sollte nun behoben sein.
Auch der transparente Bitmap-Hintergrund funktioniert nun, ohne "UsePaintBuffer" ausschalten zu müssen.
Zuletzt geändert von wp_xyz am Fr 8. Jan 2021, 18:48, insgesamt 2-mal geändert.

hbr
Beiträge: 254
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 1.6.0 FPC 3.0.0)
CPU-Target: 32/64,ARM(RPi)

Re: TlpHtmlPanel

Beitrag von hbr »

Super,
die Trunk Geschichte hatte ich schon mal, ist zu mir zu kompliziert
Wie komme ich jetzt ohne Trunk an die geänderte "IpHtml.pas" ?

Übrigens, habe nun drei Versionen nach dem Schema (3 x LazOrdner, LazConfig mit 3 LazOrdnern) installiert.
Läuft aber irgendwie nicht richtig.
Habe die 2.0.10 schon Gefühlte 10 mal neu installiert.
Bei der Packet Installationen kommt immer die Fehlermeldung "SVN not in Path“.
Das Packet wurde dann nach mehreren Versuchen installiert z.B. "datetimectrls"
Aber dann wird z.B "datetimepicker.pas" nicht gefunden angezeigt.

Problem:
Z.B. betätige ich unter Projekteinstellungen "Test"
Dann bekomme ich die Meldungen:
ANMERKUNG: using config file C:\lazarus-2.0.10x64\fpc\3.2.0\bin\x86_64-win64\fpc.cfg
WARNUNG: ppu ist zweimal vorhanden: C:\lazarus-2.0.10x64\fpc\3.2.0\units\x86_64-win64\fv\dialogs.ppu, C:\lazarus-2.0.10x64\lcl\units\x86_64-win64\dialogs.ppu
WARNUNG: ppu ist zweimal vorhanden: C:\lazarus-2.0.10x64\fpc\3.2.0\units\x86_64-win64\fv\menus.ppu, C:\lazarus-2.0.10x64\lcl\units\x86_64-win64\menus.ppu

Oder muss ich für jede Plattform einen eigenen Programmcode Projektordner haben?
Dann müsste ich meine Programme für 32 und 64Bit zweimal anpassen.

Gruß

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

Re: TlpHtmlPanel

Beitrag von wp_xyz »

hbr hat geschrieben:
Fr 8. Jan 2021, 11:36
Super,
die Trunk Geschichte hatte ich schon mal, ist zu mir zu kompliziert
Wie komme ich jetzt ohne Trunk an die geänderte "IpHtml.pas" ?
Wenn du mit Trunk absolut nicht klar kommst, könntest du versuchen, den TurboPower_iPro Ordner (in (lazarus)/components) aus der versuchten Trunk-Installation an dieselbe Stelle in der Laz-2.0.10-Installation zu kopieren und zu hoffen, dass die Trunk-Versionen von TurboPower_iPro mit den Dateien von v2.0.10 harmonieren. Dann Lazarus neu kompilieren (Menü "Werkzeuge"). Ein gewisses Risiko besteht, dass das schief geht, und die IDE mit dem zu neuen IPro nicht kompiliert werden kann. Für diesen Fall hast du hoffentlich vorher eine Kopie des originalen Ipro-Ordners gemacht. Sonst musst du Lazarus neu installieren.
hbr hat geschrieben:
Fr 8. Jan 2021, 11:36
Übrigens, habe nun drei Versionen nach dem Schema (3 x LazOrdner, LazConfig mit 3 LazOrdnern) installiert.
Läuft aber irgendwie nicht richtig.
Habe die 2.0.10 schon Gefühlte 10 mal neu installiert.
Bei der Packet Installationen kommt immer die Fehlermeldung "SVN not in Path“.
Das Packet wurde dann nach mehreren Versuchen installiert z.B. "datetimectrls"
Aber dann wird z.B "datetimepicker.pas" nicht gefunden angezeigt.
I habe gefühlte 100x Trunk installiert und nie diese Probleme gehabt. Ich weiß nicht, was du falsch machst. "SVN not in Path" habe ich einige Zeit lang als Warning (nicht als Fehler mit Abbruch) gesehen, die Kompilierung ist aber weiter gelaufen. Und in letzter Zeit ist sie mir gar nicht mehr aufgefallen.

Wegen DateTimePicker: das Originalpackage wurde vor - vielleicht - 1-2 Jahren in ein Runtime- und Designtime-Package aufgespalten. Das könnte so eine Fehlermeldung erklären. Aber wenn du die Trunk-Version über SVN herunterlädst, bekommst du auf jeden Fall die richtigen Packages. Das klingt irgendwie, wie wenn da bei dir ein Versionsmischmasch vorliegt.
hbr hat geschrieben:
Fr 8. Jan 2021, 11:36
Problem:
Z.B. betätige ich unter Projekteinstellungen "Test"
Dann bekomme ich die Meldungen:
ANMERKUNG: using config file C:\lazarus-2.0.10x64\fpc\3.2.0\bin\x86_64-win64\fpc.cfg
WARNUNG: ppu ist zweimal vorhanden: C:\lazarus-2.0.10x64\fpc\3.2.0\units\x86_64-win64\fv\dialogs.ppu, C:\lazarus-2.0.10x64\lcl\units\x86_64-win64\dialogs.ppu
WARNUNG: ppu ist zweimal vorhanden: C:\lazarus-2.0.10x64\fpc\3.2.0\units\x86_64-win64\fv\menus.ppu, C:\lazarus-2.0.10x64\lcl\units\x86_64-win64\menus.ppu
Ja, das kommt bei mir auch. Ich weiß auch gar nicht, warum dieser Test-Button da ist. Einfach ignorieren. Wichtig ist, dass du die Trunk-IDE fehlerfrei bauen kannst.
hbr hat geschrieben:
Fr 8. Jan 2021, 11:36
Oder muss ich für jede Plattform einen eigenen Programmcode Projektordner haben?
Nein, auf keinen Fall. Du kannst denselben Code für verschiedene Plattformen kompilieren, das ist ja der Witz an Lazarus. Du musst nur schlimmstenfalls einzelne Code-Passage mit Hilfe von Defines unterschiedlich behandeln.

hbr
Beiträge: 254
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 1.6.0 FPC 3.0.0)
CPU-Target: 32/64,ARM(RPi)

Re: TlpHtmlPanel

Beitrag von hbr »

Danke für die Info.
Wenn du mit Trunk absolut nicht klar kommst, könntest du versuchen, den TurboPower_iPro Ordner (in (lazarus)/components) aus der versuchten Trunk-Installation an dieselbe Stelle in der Laz-2.0.10-Installation zu kopieren und zu hoffen, dass die Trunk-Versionen von TurboPower_iPro mit den Dateien von v2.0.10 harmonieren.
Wo bekomme ich eine Trunk Installation her?
Ich habe noch Trunk Reste von der Laz V1.6.(die noch läuft).
Wenn ich jetzt eine neue Trunk installiere, dann kommen die sich bestimmt ins Gehege.
...Aber wenn du die Trunk-Version über SVN herunterlädst,...
Was meinst Du mit SVN?
Etwa Package > Online Package-Manager ?

Ich bekomme nun Sporadisch in V2.0.10 eine Fehlermeldung mit der ich nichts anfangen kann.
Was Bedeutet diese und wie kann ich dieser entgegen wirken.
"Projekt hat Exeption-klasse External SIGFPE ausgelöst bei Adresse 7FFA4373E6E3"

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4441
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: TlpHtmlPanel

Beitrag von af0815 »

mit fpcupdeluxe kannst du eine bleliebige Fpc/Lazarus Kpmbination zusätzlich installieren, die die vprhande installation nicht beeinflusst. Da gehen bliebig viele Installationen Seite an Seite.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten