TIpHtmlPanel: String anzeigen
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: TIpHtmlPanel: String anzeigen
Komischerweise will das HTML Panel nicht so wie ich....
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: TIpHtmlPanel: String anzeigen
so, ich weiß noch nicht warum CSS nicht beachtet wird, aber vielleicht geht es ja bei einem von euch:
Zum Code: Du brauchst ein SynMemo und das HTML Panel(Vielleicht musst es nach Installieren).
Und ein BitBnt Button.
Im SynMemo1 Schreibst du z.b. folgenden Code:
nach meiner Auffassung müsste es so gehen. Nur bin ich mit ID und Class nicht so vertraut. Ich habe aber alles ausprobiert. In einem alten Projekt ging es auf eine Ähnliche Art und weiße. Jedoch verwende ich da keine SynEdit sondern direkt ein TStringList.
Code: Alles auswählen
procedure HTMLStringToHtmlPanel(const HTMLString:String; var HTMLPanel:TIpHtmlPanel);
var
html:TIpHtml;
ms:TMemoryStream;
StrList:TStringList;
begin
StrList:=TStringList.Create;
StrList.Text:=HTMLString;
ms:=TMemoryStream.Create;
StrList.SaveToStream(ms);
ms.Position:=0; // Von entscheidender Bedeutung, sonst geht es nicht(Vielleicht ein BUG in der LCL bzw. von TStream bzw. von TStringList.
html:=TIpHtml.Create;
html.LoadFromStream(ms);
HTMLPanel.SetHtml(html);
ms.Free; StrList.Free;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
HTMLStringToHtmlPanel(SynMemo1.Lines.Text,IpHtmlPanel1);
end;
Und ein BitBnt Button.
Im SynMemo1 Schreibst du z.b. folgenden Code:
Code: Alles auswählen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>text-decoration</title>
<style type="text/css">
.Test {color:red;}
</style>
</head><body>
<p>
Test <span id="test">test2</span>
</p>
</body>
</html>
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 619
- Registriert: Mi 9. Mär 2011, 16:34
- OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
- CPU-Target: 64Bit
- Wohnort: seit 01.06.2011 in Wahlstedt
Re: TIpHtmlPanel: String anzeigen
also häng ich da nicht als einziger... :S das ist schon mal gut zu wissenpluto hat geschrieben:so, ich weiß noch nicht warum CSS nicht beachtet wird, aber vielleicht geht es ja bei einem von euch:Zum Code: Du brauchst ein SynMemo und das HTML Panel(Vielleicht musst es nach Installieren).Code: Alles auswählen
procedure HTMLStringToHtmlPanel(const HTMLString:String; var HTMLPanel:TIpHtmlPanel); var html:TIpHtml; ms:TMemoryStream; StrList:TStringList; begin StrList:=TStringList.Create; StrList.Text:=HTMLString; ms:=TMemoryStream.Create; StrList.SaveToStream(ms); ms.Position:=0; // Von entscheidender Bedeutung, sonst geht es nicht(Vielleicht ein BUG in der LCL bzw. von TStream bzw. von TStringList. html:=TIpHtml.Create; html.LoadFromStream(ms); HTMLPanel.SetHtml(html); ms.Free; StrList.Free; end; procedure TForm1.BitBtn1Click(Sender: TObject); begin HTMLStringToHtmlPanel(SynMemo1.Lines.Text,IpHtmlPanel1); end;
Und ein BitBnt Button.
Im SynMemo1 Schreibst du z.b. folgenden Code:nach meiner Auffassung müsste es so gehen. Nur bin ich mit ID und Class nicht so vertraut. Ich habe aber alles ausprobiert. In einem alten Projekt ging es auf eine Ähnliche Art und weiße. Jedoch verwende ich da keine SynEdit sondern direkt ein TStringList.Code: Alles auswählen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head><title>text-decoration</title> <style type="text/css"> .Test {color:red;} </style> </head><body> <p> Test <span id="test">test2</span> </p> </body> </html>

Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache
und der Kreis Segeberg meine LIEBE 


-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: TIpHtmlPanel: String anzeigen
Ich suche noch nach den Grund. Es kann sein, dass ich das HTML Panel verändert hatte, damit es ging. Aber ich bin mir nicht mehr ganz sicher.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 619
- Registriert: Mi 9. Mär 2011, 16:34
- OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
- CPU-Target: 64Bit
- Wohnort: seit 01.06.2011 in Wahlstedt
Re: TIpHtmlPanel: String anzeigen
Die Überlegung ein TStringList zu verwenden kam mir auch schon, nur war ich mir net sicher, ob ich dies ohne große Probleme in einen ANSIString wandeln kann.pluto hat geschrieben:Ich suche noch nach den Grund. Es kann sein, dass ich das HTML Panel verändert hatte, damit es ging. Aber ich bin mir nicht mehr ganz sicher.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache
und der Kreis Segeberg meine LIEBE 


-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: TIpHtmlPanel: String anzeigen
Ich bin dem Problem auf der Spur. Denke ich. Es liegt an den Steuerzeichen. Schau dir mal die Methode "TCSSProps.ReadCommands" an.
edit01: Also, das HTML Panel lädt wohl mein CSS Bereich, wendet es aber nicht an. Selbst beim Zeichnen ist die Schrift Farbe nur clBlack und nicht clRed.
edit01: Also, das HTML Panel lädt wohl mein CSS Bereich, wendet es aber nicht an. Selbst beim Zeichnen ist die Schrift Farbe nur clBlack und nicht clRed.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 619
- Registriert: Mi 9. Mär 2011, 16:34
- OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
- CPU-Target: 64Bit
- Wohnort: seit 01.06.2011 in Wahlstedt
Re: TIpHtmlPanel: String anzeigen
wenn ich die nun mal richtig verstehe, muß ich die als Bsp:pluto hat geschrieben:Ich bin dem Problem auf der Spur. Denke ich. Es liegt an den Steuerzeichen. Schau dir mal die Methode "TCSSProps.ReadCommands" an.
edit01: Also, das HTML Panel lädt wohl mein CSS Bereich, wendet es aber nicht an. Selbst beim Zeichnen ist die Schrift Farbe nur clBlack und nicht clRed.
Code: Alles auswählen
TStringList.add(text-align: left);
TStringList.add(background-color: rgb(255, 255, 255));
Code: Alles auswählen
TCSSProps.ReadCommands(TStringList);
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache
und der Kreis Segeberg meine LIEBE 


-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: TIpHtmlPanel: String anzeigen
NEIN. Diese Methode wird Intern verwendet.wandelt dies denne um?! Mach versuchen.
edit01: Habe möglicherweise den Grund gefunden. Ich muss aber noch ein paar Tests machen. es scheint ein Fehler im HTML Panel zu sein.
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: TIpHtmlPanel: String anzeigen
Lösung:
Du musst das HTML Panel ändern. Du musst an zwei bestimmten stellen Trim einfügen:
TCSSProps.GetCommandArgs in der unit ipcss.inc
Überall wo in dieser Methode result.Add verwendet wird musst du Result.Add(Trim(Arg)); raus machen.
schon sollte es gehen.
unterstreichen geht aber noch nicht. Ich werde dazu noch ein paar Tests machen.
Du musst das HTML Panel ändern. Du musst an zwei bestimmten stellen Trim einfügen:
TCSSProps.GetCommandArgs in der unit ipcss.inc
Überall wo in dieser Methode result.Add verwendet wird musst du Result.Add(Trim(Arg)); raus machen.
schon sollte es gehen.
unterstreichen geht aber noch nicht. Ich werde dazu noch ein paar Tests machen.
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: TIpHtmlPanel: String anzeigen
Wenn du in die iphtml.pas nach der Zeile 9602 folgendes einfügst:
wird auch das U Tag unterstützt. nach ersten Tests geht das ganz gut.
PS: Ich baue gerade das HTML Panel etwas aus. Ich kann jetzt auch im CSS Bereich Text Decoration anwenden. Die Änderungen sind aber etwas mehr.
edit01: Die zwei Dateien die hier vorher waren habe ich hier hinzugefügt: http://www.lazarusforum.de/viewtopic.php?f=29&t=5090" onclick="window.open(this.href);return false;
Code: Alles auswählen
if fsUnderline in Owner.Target.Font.Style then begin
Owner.Target.MoveTo(p.x,R.Bottom);
Owner.Target.LineTo(r.Right,R.Bottom);
end;
PS: Ich baue gerade das HTML Panel etwas aus. Ich kann jetzt auch im CSS Bereich Text Decoration anwenden. Die Änderungen sind aber etwas mehr.
edit01: Die zwei Dateien die hier vorher waren habe ich hier hinzugefügt: http://www.lazarusforum.de/viewtopic.php?f=29&t=5090" onclick="window.open(this.href);return false;
Zuletzt geändert von pluto am So 19. Jun 2011, 20:09, insgesamt 2-mal geändert.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 619
- Registriert: Mi 9. Mär 2011, 16:34
- OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
- CPU-Target: 64Bit
- Wohnort: seit 01.06.2011 in Wahlstedt
Re: TIpHtmlPanel: String anzeigen
d.H. die Function schaut umterm Strich so aus?!pluto hat geschrieben:Wenn du in die iphtml.pas nach der Zeile 9602 folgendes einfügst:wird auch das U Tag unterstützt. nach ersten Tests geht das ganz gut.Code: Alles auswählen
if fsUnderline in Owner.Target.Font.Style then begin Owner.Target.MoveTo(p.x,R.Bottom); Owner.Target.LineTo(r.Right,R.Bottom); end;
PS: Ich baue gerade das HTML Panel etwas aus. Ich kann jetzt auch im CSS Bereich Text Decoration anwenden. Die Änderungen sind aber etwas mehr.
Code: Alles auswählen
function TIpHtml.CheckKnownURL(URL: string): boolean;
var
P : Integer;
begin
if assigned(FOnURLCheck) then begin
P := CharPos('#', URL);
if P <> 0 then
SetLength(URL, P - 1);
{$IFDEF IP_LAZARUS}
Result:=true;
{$ENDIF}
FOnURLCheck(Self, URL, Result);
if fsUnderline in Owner.Target.Font.Style then begin
Owner.Target.MoveTo(p.x,R.Bottom);
Owner.Target.LineTo(r.Right,R.Bottom);
end;
end;
end;
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache
und der Kreis Segeberg meine LIEBE 


-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: TIpHtmlPanel: String anzeigen
Wie kommst auf auf "CheckKnownURL" ? bei mir ist das in der "RenderQueue" nach den ersten TextOut muss das hin.
Aber lass das mal, ich habe die Unit noch etwas erweitert. Ich lade sie nachher hoch und du brauchst sie nur zu ersetzten. OK?
Aber lass das mal, ich habe die Unit noch etwas erweitert. Ich lade sie nachher hoch und du brauchst sie nur zu ersetzten. OK?
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: TIpHtmlPanel: String anzeigen
Mist, habe die Dateien zum Falschen Beitrag hinzugefügt. Ich hoffe du findest den Beitrag, ein paar Beiträge unter diesem Hier.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 619
- Registriert: Mi 9. Mär 2011, 16:34
- OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
- CPU-Target: 64Bit
- Wohnort: seit 01.06.2011 in Wahlstedt
Re: TIpHtmlPanel: String anzeigen
das ist bei mir de Zeile 10170.pluto hat geschrieben:Wie kommst auf auf "CheckKnownURL" ? bei mir ist das in der "RenderQueue" nach den ersten TextOut muss das hin.
Jopp. also die denne nur ersten und das Org. saven.pluto hat geschrieben:Aber lass das mal, ich habe die Unit noch etwas erweitert. Ich lade sie nachher hoch und du brauchst sie nur zu ersetzten. OK?
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache
und der Kreis Segeberg meine LIEBE 


-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: TIpHtmlPanel: String anzeigen
Diese Zeile habe ich auch gar nicht geschrieben. Schau noch mal genau an. Ich habe "9602".das ist bei mir de Zeile 10170.
Die zwei Dateien findest du weiter Unten, in einer meiner Beiträge.
MFG
Michael Springwald
Michael Springwald