Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Textausgabe mit Formatierungen (https://www.delphipraxis.net/132232-textausgabe-mit-formatierungen.html)

mani64 8. Apr 2009 11:32


Textausgabe mit Formatierungen
 
Hallo,

es ist schon ein Weilchen her, dass ich mit Pascal programmiert habe. Auch mein Delphi ist eine ältere Version (5.0).
Ich würde gerne folgendes realisieren, weiss aber nicht, wie ich es angehen soll:

Ich habe eine Textdatei (als Logfile von einem PC-Spiel erstellt), die gewisse Textformatierungen enthält (z.B. "Escape" - also ASCII 27 - und danach ein "G" bedeutet, dass der folgende Text grün dargestellt werden soll; oder [u] bedeutet, dass der Text unterstrichen werden soll).

Ich möchte nun gerne, diese Textdatei auf dem Bildschirm ausgeben und die Formatierung dabei natürlich umsetzen. Wie gehe ich diese Sache an?
Kann ich dafür z.B. TMemo verwenden? Was muss ich abändern? Oder muss ich die ganze Ausgabe selbst herstellen (mit TextOut) und dann auch alle Cursor-Bewegungen selbst kontrollieren? Der Text braucht nicht editiert zu werden, allerdings hätte ich gerne eine Suchfunktion dabei.

Vielen Dank für Hinweise

Luckie 8. Apr 2009 11:54

Re: Textausgabe mit Formatierungen
 
Da wirst du wohl die Logdatei selber parsen müssen und dann in einem RichEdit formatiert ausgeben.

mani64 8. Apr 2009 12:10

Re: Textausgabe mit Formatierungen
 
Ja, das mit dem Parsen war mir klar. TMemo kann wohl Text nicht unterschiedlich färben, sondern nur einheitlich darstellen.
TRichEdit - hm, das RTF wirkt auf mich sehr kompliziert; damit hab ich noch nicht gearbeitet.

Danke für die Antwort

TheMiller 8. Apr 2009 12:27

Re: Textausgabe mit Formatierungen
 
Dann speicher den Inhalt des RichEdit mit der Base64-Codierung. Es gibt hier eine Base64.pas. Damit kannst du die Formatierung mit speichern und anschließend mit laden!

mani64 8. Apr 2009 12:35

Re: Textausgabe mit Formatierungen
 
Nein, nein, ich brauch den Logfile nicht zu speichern, ich will ihn nur ausgeben. Ich muss nur noch raus bekommen, wie ich dann z.B. von der Farbe schwarz auf Farbe grün umschalte, um ein Wort in grün auszugeben, und wie ich wieder zurück wechsle.

p80286 8. Apr 2009 12:39

Re: Textausgabe mit Formatierungen
 
Hallo Mani64,

die Alternative zu luckies vorschlag wäre natürlich auf einem Canvas mit textout zu arbeiten. Was aber eigentlich nur zu Lernzwecken zu empfehlen ist.

Von RTF solltest Du Dich nicht schrecken lassen, da RTF ja "nur" das Speicherformat ist.
Im Prinzip gehst Du so vor:

Text in Richedit laden
suche Grün
Text der Grün sein soll mit Selstart/sellength markieren
mit SelAttributes grün einfärben
fertig

das wiederholst Du so lange bis es keine Formatierungsanweisungen mehr in Deinem Text gibt.

Gruß
K-H

Klaus01 8. Apr 2009 13:15

Re: Textausgabe mit Formatierungen
 
.. auch wenn es vielleicht keiner lesen will,
aber das sollte auch via TStringGrid (draw).

Grüße
Klaus

mani64 8. Apr 2009 14:19

Re: Textausgabe mit Formatierungen
 
Mit TStringGrid? und dann den ganzen Text in eine Zelle schreiben - oder wie? Wieviel Text kann denn eine Zelle fassen? Der logfile kann schon mehrere MB groß werden.

Luckie 8. Apr 2009 14:21

Re: Textausgabe mit Formatierungen
 
also ich würde ein StringGrid eher für ungeeignet halten.

p80286 8. Apr 2009 14:30

Re: Textausgabe mit Formatierungen
 
Hallo Zusammen,

naja wenn das Logfile "augenscheinlich" formatiert ist, wäre ein Stringgrid vielleicht keine schlechte Idee, aber Grün und Fett und.... muß trotzdem umgesetzt werden oder dann doch nicht?

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz