TlpHtmlPanel

Für Fragen von Einsteigern und Programmieranfängern...
hbr
Beiträge: 285
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
CPU-Target: 32/64,ARM(RPi)

TlpHtmlPanel

Beitrag von hbr »

Hallo,
habe ein Proplem mit dem Html-Panel.
Ich möchte gerne das Panel Durchsichtig haben,
so dass die Hintergrundfarbe (TPanel) worauf das HTMLPanel liegt durchscheint.
IpHtmlPanel.ParentColor:=true;
IpHtmlPanel.BgColor:=Farbe;
funktionieren beide nicht.
Im Html selbst ist keine Farbe difiniert.
Wie kann man das realisieren.

übrigens funktioniert in der Version V2.0.10
<p align="center"><img src=".."><\p> und
ein *.png file transparent verunstalltet die Ausgabe.
Und das Image kann nicht "Center" dargestellt werden.
Dieses gelingt nur in einer Tabelle.
<body background="picture/walnut.jpg">

Weis jemand wie man das realisieren kann?

Gruß

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

Re: TlpHtmlPanel

Beitrag von wp_xyz »

hbr hat geschrieben:
Do 31. Dez 2020, 18:07
übrigens funktioniert in der Version V2.0.10
<p align="center"><img src=".."><\p> und
ein *.png file transparent verunstalltet die Ausgabe.
Und das Image kann nicht "Center" dargestellt werden.
Dieses gelingt nur in einer Tabelle.
<body background="picture/walnut.jpg">
Fehlt das etwas? "Übrigens funktioniert ..." - wo ist das Problem, wenn etwas funktioniert? Oder meinst du "Übrigens funktioniert ... nicht"?

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

Re: TlpHtmlPanel

Beitrag von hbr »

Ja wie beschrieben funktionieren diese beiden Beispiele nicht mehr in Version 2.0.10.

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

Re: TlpHtmlPanel

Beitrag von wp_xyz »

In welcher Version ging es denn noch? Und was heißt "verunstaltet"? Kannst du ein kleines Projekt hochladen, in dem man das Problem nachvollziehen kann?

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

Re: TlpHtmlPanel

Beitrag von hbr »

helps.zip
(111.63 KiB) 80-mal heruntergeladen
Also in dem Muster lief es so bei Version 1.6, alle Zurück Button oder auch andere Bilder wurden im HTMLPanel korrekt angezeigt wie auch in allen Browsern.

In Version 2.0.10 wandern die Bilder nach links,
trotz <p align="center"> also "left"

Hintergrund Bilder kacheln, funktioniert nur mit "*.jpg“ bei beiden Versionen.
<body background="picture/minus4.jpg">

Ich hatte probiert ein Transparentes Bild zu erstellen, welches mir dann ermöglicht, zusätzlich ein Color Event einzufügen. z.B.
<body background="picture/minus4.jpg" bgcolor=“#00000F“>

Leider Funktioniert das aber bei beiden Versionen nur mit "*.jpg’s“.

Da ich über 350 html’s zur Auswahl habe, suche ich nach einer Möglichkeit, veränderte „Color‘s“ über das Programm zu steuern, also das meine HTML’s die gleiche Farbe wie im Programm haben,
wie ich das in meiner Frage versucht habe zu formulieren.

Also gibt es die Möglichkeit eines Transparenten HtmlPanel?

Gruß

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

Re: TlpHtmlPanel

Beitrag von wp_xyz »

Das mit dem Align habe ich zwar nicht geprüft, kann ich mir aber durchaus vorstellen. Als ich mich damit zum letzten Mal beschäftigt habe, bin ich zur Meinung gekommen, dass es wahrscheinlich leichter ist, selbst einen HTML-Viewer zu schreiben, als das IProHTMLPanel zu debuggen.

Den Rest kann ich nicht nachvollziehen - ich habe jetzt keine Lust, mir deinen Kopf zu zerbrechen und ein Testprojekt zusammenzuklicken. Wie schon gesagt, poste bitte ein kompilierbares Beispielprojekt (nicht nur die html/Bild-Dateien), so dass ich den Fehler nachvollziehen kann.

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

Re: TlpHtmlPanel

Beitrag von wp_xyz »

hbr hat geschrieben:
Do 31. Dez 2020, 23:31
Hintergrund Bilder kacheln, funktioniert nur mit "*.jpg“ bei beiden Versionen.
<body background="picture/minus4.jpg">
Ich habe jetzt mal dein Bild "minus4-jpg" nach png umformatiert, und in deiner html-Datei entsprechend als png aufgerufen. Das ganze habe ich in das Demo-Programm HtmlFileExp1 im Ordner components/turbopower:ipro/examples der Lazarus-Installation geladen. Und dort ist der Hintergrund einwandfrei gekachelt. Ist dein OnGetImage-Handler so aufgebaut, dass auch eine png-Datei gesucht wird, und nicht nur jpg?

Win 10 (64 bit), Laz 2.0.10/FPC 3.2.0 (32 bit)

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

Re: TlpHtmlPanel

Beitrag von hbr »

Danke für die Info,
was ist OnGetImage-Handler?
Und wo wird es gesetzt?

Wie sieht es den mit <p align="center"> aus?
In 1.6 ist die Darstellung OK, in V 2.0.10 wird es Left angezeigt.

Gruß

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

Re: TlpHtmlPanel

Beitrag von hbr »

Gefunden!

Code: Alles auswählen

type
  TSimpleIpHtml = class(TIpHtml)
  public
    property OnGetImageX;
  end;          
  
  ...
  
procedure IpHtmlPanel1HotClick(Sender: TObject);
begin
 if IpHtmlPanel1.HotNode is TIpHtmlNodeA  then  begin
    TPst(SL.Objects[CurrPos]).Position := IpHtmlPanel1.VScrollPos;
    OpenHTMLFile (TIpHtmlNodeA(IpHtmlPanel1.HotNode).HRef, True, True);
 end;
end;                                                      
Finde aber keine Einstellungsmöglichkeiten.

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

Re: TlpHtmlPanel

Beitrag von wp_xyz »

Wie soll ich deinen Code besser kennen als du?

Durchsuch mal die Unit, in der die HTML-Datei geladen wird nach "GetImage". In dem Beispiel-Programm HtmlFileExp1 (in components/turbopower_ipro/examples deiner Lazarus-Installation) heißt der OnGetImageX-Event-Handler "HTMLGetImageX", vielleicht ist es ja bei dir ähnlich. Der Code dort muss so allgemein sein, dass alle bekannten Graphik-Formate gelesen werden. Im Zweifel poste diesen Code.

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

Re: TlpHtmlPanel

Beitrag von hbr »

Ok,
ist der gleiche Code.
Habe ihn wohl seinerzeit daraus übernommen, ist halt sehr lange her.

Muss wenn ich png verwenden will, die PNG erweiterung hier eingetragen werden?

Code: Alles auswählen

 {$IFNDEF IP_LAZARUS}
      Ext := LowerCase (Copy (ExtractFileExt (FN), 2, MaxInt));
      if  (Ext = 'bmp') or (Ext = 'emf') or (Ext = 'wmf') or (Ext = 'gif') or (Ext = 'jpg')  then  begin
     {$ENDIF}

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

Re: TlpHtmlPanel

Beitrag von wp_xyz »

Klar, wenn "(Ext='png')" hier nicht mit in die OR-Verknüpfung aufgenommen ist, dann werden keine png-Dateien geladen.

Aber, was mich stutzig macht, ist das {$IFNDEF IP_LAZARUS}. Wo ist denn dieses Stück Quelltext her? Das Define IP_LAZARUS gab es bis vor kurzem intern in den TurboPower-iPro-Units, um die die Units sowohl für Lazarus als auch Delphi nutzbar zu halten, im Anwendungscode hätte ich es nicht erwartet.

Wenn IP_LAZARUS nicht definiert ist (NDEF = Not defined), dann soll dieser Code eigentlich gar nicht übersetzt werden. Wenn der Compiler diesen Code trotzdem sieht, dann ist IP_LAZARUS nicht gesetzt (was du aber eigentlich gar nicht brauchen solltest). Da ist etwas oberfaul, wahrscheinlich nicht nur an dieser Stelle.

Ohne deinen Quelltext kommen wir nicht weiter. Wenn du ihn hier nicht veröffentlichen willst, lade alles in eine Cloud hoch und schicke mir den Link per PM.

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

Re: TlpHtmlPanel

Beitrag von hbr »

Also meine HtmlPanel ist exakt so wie im Beispiel "HtmFileExp1" aufgebaut.
Habe noch einmal alles kontroliert.
Dort steht,
{$IFDEF LCL}
{$DEFINE IP_LAZARUS}
{$ENDIF}
minus.png
minus.png (16.36 KiB) 2415 mal betrachtet
Definiert.

Korios ist nur, dass 'Ext' wo nirgends deklariert ist und es gar nicht durchlaufen wird.

Also PNG lauft nach wie vor nicht, es wird zwar dargestellt, aber beim scrollen verwischt alles und man kann nicht lesen, alles vermatscht.
Hier mal eine PNG mit Adobe erstellt.

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

Re: TlpHtmlPanel

Beitrag von wp_xyz »

OK, mit diesem Programm sollte es funktionieren (*). Zumindest tut es das bei mir. Keine Ahnung was bei dir schief läuft. Auf welchem Betriebssystem/Widgetset bist du eigentlich? Ich auf Win10, habe aber eben auch Linux LMDE 4 Cinnamon getestet.

Oder tritt das Problem nur mit transparenten png's auf? Warum fügst du dann oben aber mit "minus4.png" ein nicht-transparentes png bei? Und das neue "minus.png" kann man überhaupt nicht herunterladen... Alles reichlich unklar...

(*) Das if-Zweig mit "ext" wird hier übersprungen, und stattdesswn wird "Picture.LoadFromFile(FN)" eingebunden, aber das kann auch png lesen.

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

Re: TlpHtmlPanel

Beitrag von hbr »

Ja das Problem tritt nur mit transparenten Bilddateien im
<body background="pics/bildt.png">.

Der Bodyeintrag im Style muss raus, ist da so reingerutscht.

Was ist denn mit dem align="center" ?

Testumgebung Windows 10

Antworten