![]() |
Inhalt von TRichEdit ohne Verlust von DefAttributes kopieren
Wenn man 1 TRichEdit und 1 TDBRichEdit auf einer Form hat und möchte den Text vom TRichEdit in dem TDBRichEdit kopieren, wie macht man das ohne die DefAttributes zu verlieren.
Delphi-Quellcode:
geht nicht. Alle DefAttributes gehen verloren.
TDBRichEdit1.Text := RichEdit2.Text;
|
Re: Inhalt von TRichEdit ohne Verlust von DefAttributes kopi
Hai Heike,
meinst Du so etwas: ?
Delphi-Quellcode:
Procedure CopyRichEdit (aSource, aDestination : TRichEdit);
var RichStream : TMemoryStream; begin RichStream := TMemoryStream.Create; try aSource.Lines.SaveToStream(RichStream); RichStream.Position := 0; aDestination.Lines.LoadFromStream(RichStream); finally RichStream.Free; end; end; |
Re: Inhalt von TRichEdit ohne Verlust von DefAttributes kopi
Sorry, Ich habe es falsch dargestellt. Den Text von einem TRichEdit in einem TDBRichEdit kopieren, ohne dass farbiger Text usw. verloren geht.
|
Re: Inhalt von TRichEdit ohne Verlust von DefAttributes kopi
Geht das nicht mit dem Code oben wenn Du aDestitination nicht als TRichEdit sondern TDBRichEdit deklarierst?
|
Re: Inhalt von TRichEdit ohne Verlust von DefAttributes kopi
Schon versucht: ??
Delphi-Quellcode:
TDBRichEdit1.lines.Assign(RichEdit2.Lines);
|
Re: Inhalt von TRichEdit ohne Verlust von DefAttributes kopi
Zitat:
|
Re: Inhalt von TRichEdit ohne Verlust von DefAttributes kopi
Zitat:
|
Re: Inhalt von TRichEdit ohne Verlust von DefAttributes kopi
Dann hier noch eine weitere Variante:
Delphi-Quellcode:
Anwendung:
Procedure CopyRichEditLines(aSource, aDestination : TStrings);
var RichStream : TMemoryStream; begin RichStream := TMemoryStream.Create; try aSource.SaveToStream(RichStream); RichStream.Position := 0; aDestination.LoadFromStream(RichStream); finally RichStream.Free; end; end;
Delphi-Quellcode:
Query1.Edit; // wir müssen im Edit-Mode sein
CopyRichEditLines(RichEdit1.Lines, DBRichEdit1.Lines); |
Re: Inhalt von TRichEdit ohne Verlust von DefAttributes kopi
Zitat:
|
Re: Inhalt von TRichEdit ohne Verlust von DefAttributes kopi
Zitat:
|
Re: Inhalt von TRichEdit ohne Verlust von DefAttributes kopi
Wenn ich es per Hand, mit kopieren und einfügen mache klappt es, aber sobald ich es mit:
Delphi-Quellcode:
klappt es nicht mehr.
RichEdit1.SelectAll;
RichEdit.CopyToClipboard; DBRichEdit1.PasteFromClipboard; |
Re: Inhalt von TRichEdit ohne Verlust von DefAttributes kopi
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Heike,
es gibt keinen so richtig einfachen Weg zum Kopieren von formatierten Texten zwischen zwei RichEdit controls. Ich verwende folgende Prozedur:
Delphi-Quellcode:
Das angehängte Archiv enthält eine bei SourceForge gehostete Delphi Portierung von RichOle.h und TOM habe ich mit TLIBIMP aus RICHED20.DLL erstellt. TOM habe ich als (unsichtbare) Komponente in Delphi installiert.
uses
TOM, RichEdit, RichOle; procedure RichCopy(reSource, reTarget: TRichEdit); var u: IUnknown; reoSource, reoTarget: IRichEditOle; tdSource, tdTarget: ITextDocument; trSource, trTarget: ITextRange; begin SendMessage(reSource.Handle, EM_GETOLEINTERFACE, 0, Integer(@u)); u.QueryInterface(IID_IRICHEDITOLE, reoSource); tdSource := reoSource as ITextDocument; SendMessage(reTarget.Handle, EM_GETOLEINTERFACE, 0, Integer(@u)); u.QueryInterface(IID_IRICHEDITOLE, reoTarget); tdTarget := reoTarget as ITextDocument; tdTarget.Selection.FormattedText := tdSource.Selection.FormattedText; end; Nutzen kannst du es dann so:
Delphi-Quellcode:
Alternativ kann man den etwas traditionelleren Weg über das stream interface der rich edit controls gehen. nicoDE hat dazu etwas bei den Schweizern abgeladen.
begin
RichEdit1.SelectAll; RichEdit2.SelectAll; RichCopy(RichEdit1, RichEdit2); end; Grüße vom marabu |
DP-Maintenance
Dieses Thema wurde von "Sharky" von "Sonstige Fragen zu Delphi" nach "VCL / WinForms / Controls" verschoben.
Ich habe es (auf anregung *g*) mal nach VCL verschoben. Hätte ich aber auch früher machen sollen. |
Re: Inhalt von TRichEdit ohne Verlust von DefAttributes kopi
|
Re: Inhalt von TRichEdit ohne Verlust von DefAttributes kopi
Hallo Heike,
Zitat:
Allerdings gehört die Zwischenablage dem Benutzer und darf eigentlich nur auf seinen speziellen Wunsch hin von deinem Programm befüllt werden. marabu @Flocke: Warum sorry? Deine Fundstellen sind doch auch einen Beitrag wert. Da aber alle streamen wollte ich mit dem Text Object Model eine Alternative zeigen. |
Re: Inhalt von TRichEdit ohne Verlust von DefAttributes kopi
Zitat:
Zitat:
Zitat:
Vielen Dank für Deine (Eure) Hilfe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz