Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - LineBreaks mit Memo und StringList
Andreas L. - Mo 16.02.04 20:03
Titel: LineBreaks mit Memo und StringList
Hi,
ich habe ein SynEdit auf meinen Form. Ich möchte in einer HTML-Komponente quasi eine Vorschau des Codes der im SynEdit steht machen. Dazu müssen ja HTML-spezifische-Informationen und Style-Informationen angefügt werden.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.TabSheet4Enter(Sender: TObject); var HTML : TStringList; begin HTML :=TStringList.create; HTML.Add('<html><head><style>body {backgroundcolor:#ffffff; color:#000000; font:10pt Arial, sans-serif;}</style></head><body>'); HTML.Add(SynEdit1.text); HTML.add('</body></html>'); HTML.SaveToFile(ExtractFilePath(Application.ExeName) + 'htmlpreview.html'); htmllite1.LoadFromFile(ExtractFilePath(Application.ExeName) + 'htmlpreview.html'); end; |
Also das geht ja auch aber dann werden alle Zeilenumbüche (also ENTERs) gelöscht. Aus folgenden
wird dann
Hallo hallo2 HALLO3
Wie kann ich da machen das die Umbrüche erhalten bleiben. Hab mir gedacht das ich jede Zeile auslese und dann in einer FOR-Schleife immer einzeln HTML.add(LINE1 + #1310); mache. Aber ich weiß nicht wie ich das machen soll.. Vielleicht gibts ja auch eine einfachere Lösung...
Könnt ihr mir helfen?
Greetz
Delete - Mo 16.02.04 21:24
Hi,
Mach doch einfach HTML.AddStrings(SynEdit.Lines);
Oder meintest du was komplett anderes? :roll:
patrick - Mo 16.02.04 21:33
die lösung ist ganz einfach:
du must der html-seite auch mitteilen, das der text in eine neue zeile geschrieben wird.
das machst du mit dem HTML-befehl <br>
ich hoffe allerdings das ich dein probem richtig interpretiert habe...
Andreas L. - Di 17.02.04 14:12
patrick hat folgendes geschrieben: |
ich hoffe allerdings das ich dein probem richtig interpretiert habe... |
Nicht wirklich
patrick hat folgendes geschrieben: |
die lösung ist ganz einfach:
du must der html-seite auch mitteilen, das der text in eine neue zeile geschrieben wird.
das machst du mit dem HTML-befehl <br> |
Das ist mir klar aber irgendwie muss das ja automatisiert werden. Der Code der im SynEdit steht ist kein HTML-Code, es ist ein Pascal-Code und der soll zu dokumentationszwecken in einer HTML-Datei untergebracht werden. Jede Zeile des SynEdits muss in der HTML-Datei dann auch als neue Zeile dargestellt werden. Man könnte jetzt ja hinter jeder zeile ein <br> einfügen, aber 1. ich weiß nicht wie ich das machen soll; 2. gibts nicht eine leichtere lösung.
Greetz und thx
Anonymous - Di 17.02.04 15:25
einfach die pre tags benutzen!
ixtreme.de
Andreas L. - Di 17.02.04 21:01
Ich glaube ihr versteht mich alle nicht so richtig.
Also, im SynEdit schreib ein User folgendes (und zwar so wie es da steht, also mit Returns (Linebreaks die mit der ENTER-taste erzeugt werden *g*):
Quelltext
1: 2: 3:
| begin Memo1.clear; end; |
Mit meinen im ersten Post genannten Code erstelle ich nun eine HTML-Datei die als Dokumentationszweck verwendet werden soll. Im Browser sieht das dann aber so aus:
Quelltext
1:
| begin Memo1.clear; end; |
Also wird alles in eine Zeile rein gequetscht. Es soll aber so aussehen:
Quelltext
1: 2: 3:
| begin Memo1.clear; end; |
Wie mache ich das jetzt?
1. Ich klappere jede einzelne Zeile im SynEdit ab und setzte ein <-br> dahinter oder ein <pre> davor oder ich füge jede Zeile einzeln mit StringList.add hinzu.
2. Es gibt eine leichtere Methode, habe schon daran gedacht einfach das ganze mit einen Memo zu realiseren das auf VISIBLE :=FALSE; gestellt ist. Würde aber auch nur wieder die EXE größer machen und ist irgendwie schmlapig programmiert.
Ich weiß nicht wie ich 1. und 2. machen soll. habe davon keine Ahnung, wisst ihr wie ich es machen soll?
habt ihr mich jetzt verstanden?
Greetz und thx
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!