TIpHtmlPanel: String anzeigen

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Zandru
Beiträge: 15
Registriert: Fr 28. Aug 2009, 18:01
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.2.4)
CPU-Target: 32Bit

TIpHtmlPanel: String anzeigen

Beitrag von Zandru »

hallo miteinander,

ich hab jetzt ne weile gegooglet und gesufut, aber ich find nirgends was :(
Mein Problem: Ich will mit dem HtmlPanel HTML-Code aus einem String anzeigen. Geht das und wenn ja wie?
Bisher hab ich es nur geschaft, Dateien anzuzeigen. Natürlich könnte ich den String in eine temporäre Datei schreiben, aber da es sich um eine live-Vorschau handelt, die bei jedem Tastendruck aktuallisiert wird, ist das keine so optimale lösung...

gruß Zandru

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

Re: TIpHtmlPanel: String anzeigen

Beitrag von theo »

Naja könnte ganz schön lahm werden.
Probier mal so

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
var html: TIpHtml;
ms:TMemoryStream;
MyString:AnsiString;
begin
  MyString:='<html><b>mal</b> sehen</html>';
  html:=TIpHtml.Create;
  ms:=TMemoryStream.Create;
  ms.Write(MyString[1],Length(MyString));
  ms.Position:=0;
  html.LoadFromStream(ms);
  IpHtmlPanel1.SetHtml(html);
  ms.free;
  //html.free; Kackt ab, evtl. nur eine globale Instanz machen
end;

Zandru
Beiträge: 15
Registriert: Fr 28. Aug 2009, 18:01
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.2.4)
CPU-Target: 32Bit

Re: TIpHtmlPanel: String anzeigen

Beitrag von Zandru »

Vielen Dank, das Anzeigen funktioniert.
Leider funktioniert das <b> nicht :( Farben ändern und so geht, aber er will den text einfach nicht fett machen (weder mit <b> noch mit css). Gleiches Problem bei unterstreichen oder kursiv.
Leider brauche ich das alles... muss ich da noch irgendwo was einstellen oder geht das mit dem HTMLPanel einfach nicht?

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

Re: TIpHtmlPanel: String anzeigen

Beitrag von theo »

Bei mir geht das. Vielleicht einen anderen Font einstellen (DefaultTypeFace).

Version etc? (Hilfe -> Über Lazarus -> Rechtsklick auf Gepard-> Info kopieren und hier pasten).

Code: Alles auswählen

MyString:='<html><b>mal</b> sehen <i>mal</i> sehen <a href="test.htm">mal</a> sehen</html>';
Dateianhänge
iphtml.png
iphtml.png (5.49 KiB) 2854 mal betrachtet

Zandru
Beiträge: 15
Registriert: Fr 28. Aug 2009, 18:01
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.2.4)
CPU-Target: 32Bit

Re: TIpHtmlPanel: String anzeigen

Beitrag von Zandru »

Version: v0.9.26-4 r16881 i386-linux-gtk (aus den normalen paketquellen von ubuntu 9.04)

Ändern von DefaultTypeFace bewirkt gar nichts (selbst der Font bleibt gleich -.-). DefaultFontSize ist genau so wirkungslos...

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

Re: TIpHtmlPanel: String anzeigen

Beitrag von theo »

Bau gegen GTK2.
Du musst vllt. erst die LCL bauen, wenn das für GTK2 noch nicht gemacht wurde.
Werkzeuge -> Lazarus kompilieren einrichten ...
Am besten die IDE gleich mit.

Oder noch besser: Bau die 0.9.29 von SVN, ich glaube die Ipro Kompenten wurden kürzlich verbessert.

Zandru
Beiträge: 15
Registriert: Fr 28. Aug 2009, 18:01
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.2.4)
CPU-Target: 32Bit

Re: TIpHtmlPanel: String anzeigen

Beitrag von Zandru »

compilieren hat nix gebracht, dafür aber das upgrade - teilweise zumindest...
neue version: Lazarus 0.9.29-0 r FPC 2.2.4 i386-linux-gtk 2 (beta)

fett und kursiv tun jetzt. dafür funktioniert das einfärben via css nicht mehr (nicht weiter schlimm, mit <font> klappts). unterstreichen will er aber nach wie vor nicht :(

_X_
Beiträge: 250
Registriert: Di 16. Dez 2008, 20:13
OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
CPU-Target: 32/64Bit

Re: TIpHtmlPanel: String anzeigen

Beitrag von _X_ »

Unterstreichen kann man auch mit einem normalen Canvas nicht; Wenn du wissen willst, warum das so ist, verweise ich mal auf Pluto.

mfg _X_

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: TIpHtmlPanel: String anzeigen

Beitrag von pluto »

Ich denke, dass liegt daran, dass die verwenden Schrift Arten das nicht unterstützen. Allerdings sollte er noch wie vor Unterstreichen, da dies eine Funktion ist die von dem HTMLPanel unterstützt wird.

unterstreichen will er aber nach wie vor nicht

Laut "IpHtmlTokens" wird "<u>" unterstützt. Es könnte noch sein, dass du die Farbe zu gesetzt hast das die Line nicht sichtbar ist. Schau dir mal den "Soruce-Code" und suche nach 'u'.

In Letzter Zeit beobachte ich außerdem noch ein Fehlverwalten von TextWidht und TextHeight von Canvas. Kann auch sein, dass dadurch die BaseLine Falsch berechnet wird.
MFG
Michael Springwald

Zandru
Beiträge: 15
Registriert: Fr 28. Aug 2009, 18:01
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.2.4)
CPU-Target: 32Bit

Re: TIpHtmlPanel: String anzeigen

Beitrag von Zandru »

pluto hat geschrieben:Schau dir mal den "Soruce-Code" und suche nach 'u'.

Source-Code wovon?

durchstreichen via <s></s> geht übrigens auch nicht :(

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: TIpHtmlPanel: String anzeigen

Beitrag von pluto »

Vom HTML Panel.
Durchsteichen und unterstreichen gehören auch zusammen. Das sollte aber die Komponente unterstützen.
Ändere mal die Schrift Art zu MonoSpace z.b.
MFG
Michael Springwald

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: TIpHtmlPanel: String anzeigen

Beitrag von monta »

Also wenn da nicht jemand in letzter Zeit einen Bug eingebaut hat, geht unterstreichen und Durchstreichen problemlos:
HtmlPanel.png


(Unten das ist ein TIpHtmlPanel, auch wenn oben BBCode steht ;) )

Ich würde ja vorschlagen, mal valides html zu nehmen, und da beispielsweise nen korrekten <body>-Tag zu nutzen.

//Nachtrag: Der html-Text aus dem Beispiel der funktioniert:

Code: Alles auswählen

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><title>Vorschau</title></head><body> <u>test</u><br><br><s>test2</s>
<br></html>
Johannes

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: TIpHtmlPanel: String anzeigen

Beitrag von pluto »

hast du das Programm neu erstellt ?
MFG
Michael Springwald

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: TIpHtmlPanel: String anzeigen

Beitrag von monta »

Ja, und ich muss mich korrigieren, es geht bei mir mit nicht validem Code ebenso unter Windows.

Aber...ich hab es unter Linux probiert...dort geht es nicht. Ich würde nen Bugreport machen. Und ich verschieb das mal in die passende Sektion.
Johannes

Zandru
Beiträge: 15
Registriert: Fr 28. Aug 2009, 18:01
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.2.4)
CPU-Target: 32Bit

Re: TIpHtmlPanel: String anzeigen

Beitrag von Zandru »

ich hatte von anfang an valides html aber halt linux :/
Gibt es eine vergleichbare Komponente, die ich stattdessen nehmen könnte?
Ansonsten muss es halt erstmal so gehn, die meisten User werden vermutlich eh Windows verwenden.

Antworten