Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi wie kann man den Inhalt eines TRichedits in ein TMemo übertragen? (https://www.delphipraxis.net/154026-wie-kann-man-den-inhalt-eines-trichedits-ein-tmemo-uebertragen.html)

p80286 25. Aug 2010 13:03

wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
Hallo zusammen,

Eigentlich dürfte sich die Frage nicht stellen, aber ich habe keine andere Möglichkeit gefunden als

Delphi-Quellcode:
richedit1.lines.savetofile('C:\temp\test.txt');
memo1.lines.loadfromfile('C:\temp\test.txt');
und das kann es eigentlich nicht sein.

Das folgende Konstrukt überträgt nur den reinen Text und unterschlägt die "Steuerzeichen":
Delphi-Quellcode:
memo1.lines.addstrings(richedit1.lines);
Wie mach ich es richtig?

Gruß
K-H

mkinzler 25. Aug 2010 13:05

AW: wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
Was meinst du mit Steuerzeichen?

p80286 25. Aug 2010 14:56

AW: wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
so etwas zum Beispiel:
{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl {\f0\fnil Tahoma;}{\f1\fnil\fcharset0 Tahoma;}}
\viewkind4\uc1\pard\f0\fs16 RichEdit1
\par und ein euro zeichen: \f1\'80
\par \f0
\par }

Gruß
K-H

DeddyH 25. Aug 2010 15:01

AW: wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
Delphi-Quellcode:
procedure TfrmMain.btnCopyClick(Sender: TObject);
var Stream: TMemoryStream;
begin
  Stream := TMemoryStream.Create;
  try
    RichEdit1.Lines.SaveToStream(Stream);
    Stream.Position := 0;
    Memo1.Lines.LoadFromStream(Stream);
  finally
    Stream.Free;
  end;
end;

Klaus01 25. Aug 2010 15:13

AW: wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
.. vielleicht geht es auch so:

Delphi-Quellcode:
Memo1.Lines.Assign(RichEdit1.Lines);
Grüße
Klaus

DeddyH 25. Aug 2010 15:16

AW: wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
Dabei wird auch nur der PlainText übernommen.

Klaus01 25. Aug 2010 15:19

AW: wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
Zitat:

Zitat von DeddyH (Beitrag 1044895)
Dabei wird auch nur der PlainText übernommen.

in der Tat.

Aber warum, wenn Du über den MemoryStream gehst
werden auch nur die RichEdit1.lines darin abgespeichert.

Grüße
Klaus

DeddyH 25. Aug 2010 15:21

AW: wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
Nein, da ich quasi die "Rohdaten" übertrage, d.h. man sieht auch die Formatierungsanweisungen.

Klaus01 25. Aug 2010 15:24

AW: wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
Zitat:

Zitat von DeddyH (Beitrag 1044899)
Nein, da ich quasi die "Rohdaten" übertrage, d.h. man sieht auch die Formatierungsanweisungen.

Aber warum enthält
RichEdit1.lines.saveToStream Rohdaten
und
Memo1.lines.assign(RichEdit1.lines) nicht.

Filtert Memo1 diese "Steuerdaten" aus?

Grüße
Klaus

p80286 25. Aug 2010 15:27

AW: wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
@deddyh

Danke das klappt,
aber seltsam finde ich den "Umweg" schon.
Gibt es im TRichedit parallel zu Lines ggf. eine "Formatierungsebene", die bei einem SavetoFile mit den eigentlichen Textdaten zusammen geführt wird?

Gruß
K-H

DeddyH 25. Aug 2010 15:28

AW: wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
Es scheint so (ich habe jetzt nicht den VCL-Source durchsucht). Wenn Du direkt TRichEdit.Lines in ein TStrings-Objekt kopierst, wird lediglich der PlainText übertragen, so als ob man die Property gesetzt hätte.

[edit] Wieso ist das Thema plötzlich eine offene Frage von mir :shock:? "Hab ich mich vermessen? Ich wollt doch nix kaputt machen" :stupid: [/edit]

himitsu 25. Aug 2010 15:30

AW: wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
Auf was steht denn RichEdit1.PlainText?
Dieses entscheidet, was in Lines vorzufinden ist.

DeddyH 25. Aug 2010 15:32

AW: wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
Das macht bei mir (zumindest bei Assign) überhaupt keinen Unterschied.

Klaus01 25. Aug 2010 15:34

AW: wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
.. gerade ausprobiert.
RichEdit1.PlainText:= false;
in Memo1 ist nur "normaler" Text.

RichEdit1.PlainText := true;
in Memo1 ist nur "normaler" Text.

Grüße
Klaus

himitsu 25. Aug 2010 15:37

AW: wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
Delphi-Quellcode:
richedit1.lines.savetofile('C:\temp\test.rtf');
memo1.lines.loadfromfile('C:\temp\test.rtf');
Man könnte es auch mal so probieren, wobei es bei mir auch mit .txt ging,
aber das RichEdit prüft beim Speichern die Dateiendung und läd, davon abhängig, unterschiedliche Converter.

DeddyH 25. Aug 2010 15:41

AW: wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
Es stand ja bereits im Ausgangspost, dass es mit zwischenzeitlicher Speicherung in einer Datei funktioniert. Der TE findet das aber nicht so dolle (ich übrigens auch nicht).

p80286 25. Aug 2010 15:44

AW: wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
@Himitsu

das PlainText hat nach meiner Erfahrung nur Auswirkung beim TRichedit.LoadfromFile().
Wenn ich mich richtig erinnere kann man damit den von Dir angesprochenen Treiber-Automatismus ausbremsen.

bei
Delphi-Quellcode:
Memo1.Lines=Richedit1.Lines
bleibt übrigens auch alles beim alten.

Irgendwo hab ich mal irgendetwas gelesen, daß die Richedit-Komponente von MS in drei Versionen auftaucht, W95/98 mit der 64K-Beschränkung, XP und ab Vista als fehlerbereinigte Version.
Aber nichts genaues weiß ich nicht.

Gruß
K-H

himitsu 25. Aug 2010 15:51

AW: wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
Über den Stream müßte es auch gehn. :gruebel:

Delphi-Quellcode:
var
  S: TStream;
begin
  //RichEdit1.PlainText := False;
  S := TMemoryStream.Create;
  RichEdit1.Lines.SaveToStream(S);
  S.Position := 0;
  Memo1.Lines.LoadFromStream(S);
  S.Free;
end;
PS: LoadFromFile erstellt nur einen TFileStream und liest dann über LoadFormStream. (bzw. auch andersrum)

DeddyH 25. Aug 2010 16:16

AW: wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
Das hatte ich doch bereits geschrieben. Lies doch gelegentlich auch mal die anderen Beiträge :stupid:

mkinzler 25. Aug 2010 16:17

AW: wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
Zitat:

Lies doch gelegentlich auch mal die anderen Beiträge
Wo würden wir da Hinkommen :mrgreen:

himitsu 25. Aug 2010 16:20

AW: wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
Ich hab's gesehn, aber der TE anscheinend nicht.

p80286 25. Aug 2010 16:48

AW: wie kann man den Inhalt eines TRichedits in ein TMemo übertragen?
 
Entschuldige, ich hab's auch gesehen (#10)
Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:07 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