Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Formatierungen eines TRichedits (https://www.delphipraxis.net/10145-formatierungen-eines-trichedits.html)

Florian H 12. Okt 2003 14:14


Formatierungen eines TRichedits
 
Hallo,

wie kann ich den Inhalt (formatierter Text) eines TRichedits in ein anderes Richedit einfügen, ohne dass die Formatierungen verloren gehen?
Wenn ich mit
Delphi-Quellcode:
Richedit1.Lines.AddStrings(Richedit2.Lines);
den Text anhängen will, funktioniert das zwar, aber alle Formatierungen sind weg.

Was kann man da machen?

Viele Grüße
Florian

Christian Seehase 12. Okt 2003 14:25

Re: Formatierungen eines TRichedits
 
Moin Florian,

guckst Du hier:

Inhalt eines RichEdit einem anderen zuweisen...

Alexander 12. Okt 2003 14:26

Re: Formatierungen eines TRichedits
 
Mal ein Link:
http://swissdelphicenter.ch/de/showcode.php?id=1440

Florian H 12. Okt 2003 15:59

Re: Formatierungen eines TRichedits
 
oh, danke :)

Florian H 12. Okt 2003 16:20

Re: Formatierungen eines TRichedits
 
Hm ne, das ist doch nicht ganz das, was ich wollte...
Ich will die Zeilen ja am Ende des Richedits anhängen, die Prozeduren sind ja nur fürs komplett übernehmen :|

Christian Seehase 12. Okt 2003 16:59

Re: Formatierungen eines TRichedits
 
Moin Florian,

das Prinzip bleibt das gleiche.
Die Inhalte der RichEdits ein je einen Stream speichern, den zweiten Stream an das Ende des ersten kopieren, und dann das RichEdit aus dem ergänzten Stream laden.
Müsste eigentlich so gehen.

Florian H 12. Okt 2003 17:13

Re: Formatierungen eines TRichedits
 
hm, *rätsel*...

Wie kopiert man solche Streams?
Die OH gibt da nix her :|

Hab ich dann nicht 2 Richedit-Files hintereinander? Das würde doch nicht gehen, oder?

Christian Seehase 12. Okt 2003 17:36

Re: Formatierungen eines TRichedits
 
Moin Florian,

stimmt, auch wieder.
Dann müsste man die RTF-Struktur noch anpassen, also die schliessende } der ersten Datei löschen, und den Header ändern, also z.B. /fonttbl und /colortbl des zweiten RichEdit in den Header des ersten einarbeiten. Dann müssten noch die entsprechenden Formatierungen des zweiten an die Änderungen angepasst werden :?
Machbar, aber aufwändig.

Dann kommst Du wahrscheinlich einfacher dabei weg, den neuen Text anzuhängen, die Formatierungen auszulesen, und im Ziel-RichEdit zu ändern.

Florian H 12. Okt 2003 17:39

Re: Formatierungen eines TRichedits
 
Uiuiui, wer rechnet denn damit, dass das so kompliziert ist... :roll:

Danke dir!

Florian H 12. Okt 2003 19:30

Re: Formatierungen eines TRichedits
 
hm, ich bekomm das mit dem RTF-Editieren einfach net hin (also best. Tags entfernen um 2 RTFs in eine zu bekommen...)!

Ich verstehs net, wie kann das so schwer sien?!
Gibt doch denke ich einige Progs die das können :|

Christian Seehase 12. Okt 2003 21:55

Re: Formatierungen eines TRichedits
 
Moin Florian,

um Dich mit dem Format vertrauter zu machen, könntest Du Dir bei www.wotsit.org die Beschreibung des RTF-Formates runterladen, oder im Delphi\Help\Tools Ordner mal die Hilfedatei ansehen (*.HLP Dateien basieren auch auf RTF).
Welche Formatierungen kommen in Frage für Dein Problem (Farben/Schriftgrössen/Schriften...)?

Florian H 13. Okt 2003 12:27

Re: Formatierungen eines TRichedits
 
Ich brauche Farbe, Größe, Fett, Kursiv und Unterstrichen.
Und zwar habe ich 2 TRichEdits und an den Inhalt des 1. kommt immer auf Knopfdruck das, was im 2. steht.
Also quasi ein eingabefeld dessen inhalt dann in das große feld hinzugefügt wird.

Die Methode, das als puren Text zu haben mit RTF-Formatierungen ist gar nicht so schlecht, da ich das auch als nur-Text weiterverarbeiten könnte.

Christian Seehase 13. Okt 2003 15:39

Re: Formatierungen eines TRichedits
 
Moin Florian,

mal als Ansatz:
Speichere Dir mal zwei Beispielrichedits ab, und schau Dir die Dateien im Notepad an, und versuche die von Hand zu einem zusammenzumischen.

Der Header {\rtf1 bis zur nächsten { sollte bei beiden gleich sein.

Die \colortbl ist eine Tabelle der Farbdefinitionen, deren Einträge von 0 durchnummeriert verwendet werden (mit den RTF-Token \cf und \cb)
Beispiel: \cf3 => für die Schriftfarbe bis zum Auftreten des nächsten \cf oder \plain die 4. Farbe aus der Tabelle genommen.
(\cf => Color Foreground, \cb => Color Background)

Jetzt müsstest Du also die beiden Farbtabellen zu einer zusammenfügen, und dabei eine Liste der Nummern für die Farbe(n) des zweiten RichEdits Inhaltes aufbauen. (Ursprüngliche Farbnummer=>Neue Farbnummer).
Dann noch alle \cf und \cb Einträge im zweiten anpassen.

Florian H 17. Okt 2003 14:55

Re: Formatierungen eines TRichedits
 
uiuiui, das ist für mich 1 Stufe zu hoch :gruebel:

Danke die trotzdem für deine Hilfe!!

*immernoch-fassungslos-dass-es-nicht-einfach-geht*

Christian Seehase 17. Okt 2003 15:04

Re: Formatierungen eines TRichedits
 
Moin Florian,

schau Dir erst einmal solche Dateien (möglichst wenig Text, aber mit unterschiedlicher Anzahl Farben) im Notepad an.
Es ist zwar nicht ganz einfach, aber auch nicht so kompliziert, wie's vermutlich klingt.

BrunoT 20. Okt 2003 22:22

Re: Formatierungen eines TRichedits
 
Hallo!

es geht noch einfacher.

Delphi-Quellcode:
Richedit1.SelStart:=0;
    Richedit1.SelLength:=Length(Richedit1.Text);
    Richedit1.CopyToClipboard;
    Pos:=27;
    Richedit2.SelStart:=Pos;
    Richedit2.SelLength:=0;
    Richedit2.PasteFromClipboard;
An Position 27 wird der Inhalt von Richedit1 eingetragen. Mit allem drum und dran;


mfg

BrunoT

[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]

Christian Seehase 20. Okt 2003 22:28

Re: Formatierungen eines TRichedits
 
Moin Bruno,

klar geht das mit dem Clipboard, aber ich würde mich bedanken, wenn ein Programm eigenmächtig den Inhalt des Clipboards überschreiben würde. ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:50 Uhr.

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