Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Bild und Text in Zwischenablage kopieren (https://www.delphipraxis.net/166110-bild-und-text-zwischenablage-kopieren.html)

Perlsau 30. Jan 2012 22:51

AW: Bild und Text in Zwischenablage kopieren
 
Zitat:

Zitat von Sir Rufo (Beitrag 1148411)
Der TE möchte ja kein Bild in eine RichEdit-Komponente einfügen, sondern mit seiner Anwendung die Zwischenablage befüllen und dann in Word o.ä. einfügen.
Die Problematik dabei: Bild und Text gemischt

Das wird wohl nur gehen, wenn er den Inhalt eines RichEdits, welches ein Bild enthält, kopiert. Das Windows-Clipboard löscht ja seinen aktuellen Inhalt, wenn es neuen Stoff erhält. Und gleichzeitig ein Bitmap und einen Rich-Text zu kopieren ist meiner Ansicht so unmöglich, wie an zwei Orten gleichzeitig zu sein.

Sir Rufo 30. Jan 2012 22:57

AW: Bild und Text in Zwischenablage kopieren
 
Zitat:

Zitat von Perlsau (Beitrag 1148412)
Zitat:

Zitat von Sir Rufo (Beitrag 1148411)
Der TE möchte ja kein Bild in eine RichEdit-Komponente einfügen, sondern mit seiner Anwendung die Zwischenablage befüllen und dann in Word o.ä. einfügen.
Die Problematik dabei: Bild und Text gemischt

Das wird wohl nur gehen, wenn er den Inhalt eines RichEdits, welches ein Bild enthält, kopiert. Das Windows-Clipboard löscht ja seinen aktuellen Inhalt, wenn es neuen Stoff erhält. Und gleichzeitig ein Bitmap und einen Rich-Text zu kopieren ist meiner Ansicht so unmöglich, wie an zwei Orten gleichzeitig zu sein.

nö, ist es nicht ... siehe die von mir geposteten Links, da wird ein Bitmap in RTF umgewandelt (eingebettet) und dieses kann man dann in die Zwischenablage legen.

Perlsau 30. Jan 2012 23:08

AW: Bild und Text in Zwischenablage kopieren
 
Zitat:

Zitat von Sir Rufo (Beitrag 1148414)
nö, ist es nicht ... siehe die von mir geposteten Links, da wird ein Bitmap in RTF umgewandelt (eingebettet) und dieses kann man dann in die Zwischenablage legen.

Also, das Bitmap wird (mit der Methode aus dem ersten Link) in einen String umgewandelt (es erhält sozusagen außenherum ein wenig RTF-Code), dann legst du dieses Bitmap (mit der Methode aus dem zweiten Link) in der Zwischenablage ab. Dasselbe Resultat erziele ich doch auch, wenn ich in ein RTF-Feld ein Bild reinkopiere und dann den RTF-Text mit der Methode aus dem zweiten Link in die Zwischenablage kopiere. Übergeben wird aber letztlich ein RTF-Text. Das Bild ist Teil des RTF-Textes und kein eigenständigs Bild mehr. Wenn somit das Resultat das ist, was der TE erreichen wollte, ist das die Lösung. Ich hatte es jedoch anders verstanden, daß er nämlich ein Bild und einen RTF-Text gleichzeitig im Clipboard ablegen wollte. Und das geht natürlich nicht. Wie gesagt, deine und meine Methode legen nur jeweils ein Objekt im Clipboard ab, der TE fragte aber nach zwei unterschiedlichen Objekten, die sich gleichzeitig im Clipboard ablegen lassen.

Sir Rufo 30. Jan 2012 23:13

AW: Bild und Text in Zwischenablage kopieren
 
Du hast insofern Recht, dass der TE eigentlich ein Bild und einen String zusammen in die Zwischenablage bringen wollte ... und das geht so erstmal nicht.

Darum kam ja auch der Hinweis auf RTF, weil da beides gemischt drin vorkommen darf/kann, und das Ziel (Word, OpenOffice) sich mit RTF verträgt, bzw. versteht :)

einbeliebigername 30. Jan 2012 23:15

AW: Bild und Text in Zwischenablage kopieren
 
Hallo,

ich hatte das auch mal versucht und habe damals analysiert wie Word 2000 das gemacht hat. Also mit Word ein Stück Text mit Bild markiert und Strg+C. Dann mit dem windowseigenen Zwischenablage-Tool in die Zwischenablage geschaut. Unter XP ließ sich das Tool noch von CD nachinstallieren. Wie es bei Windows 7 mit dem Tool bestimmt ist, weiß ich jetzt nicht. Jedenfalls war das sehr interessant. Word kopierte nur den Text (RTF und/oder HTML) in die Zwischenablage. Da wo das Bild war, stand nur, als Link codiert, ein Pfad ins Dateisystem. Ich glaube es war eines der vielen Temp-Verzeichnisse. Und da lag dann auch das Bild. Umgesetzt hatte ich das dann aber nicht. Ausprobiert aber schon. Und es ging auch. Nur mit dem Remote Desktop gab es Probleme.

Deswegen mein Tipp, entweder mit dem windowseigenen Tool oder mit einem Anderen in die Zwischenablage schauen, was Word da rein kopiert. Und das dann nachbauen.

einbeliebigername.

sx2008 30. Jan 2012 23:22

AW: Bild und Text in Zwischenablage kopieren
 
Im Clipboard dürfen sich gleichzeitig durchaus viele verschiedene Formate befinden.
Hier sind die Standardformate aufgelistet.
Um verschiedene Formate abzulegen muss man MSDN-Library durchsuchenOpenClipboard gefolgt von MSDN-Library durchsuchenEmptyClipboard aufrufen.
Danach kann man mehrmals MSDN-Library durchsuchenSetClipboardData aufrufen um die Daten einzufügen.
Zum Schluss darf man MSDN-Library durchsuchenCloseClipboard nicht vergessen.

Leider ist die Klasse TClipBoard hier nicht so flexibel und ruft OpenClipboard und Closeclipboard in Eigenregie auf.
Ich hoffe etwas Licht ins Dunkel gebracht zu haben.

Perlsau 30. Jan 2012 23:37

AW: Bild und Text in Zwischenablage kopieren
 
Zitat:

Zitat von Sir Rufo (Beitrag 1148419)
Du hast insofern Recht, dass der TE eigentlich ein Bild und einen String zusammen in die Zwischenablage bringen wollte ... und das geht so erstmal nicht.

Darum kam ja auch der Hinweis auf RTF, weil da beides gemischt drin vorkommen darf/kann, und das Ziel (Word, OpenOffice) sich mit RTF verträgt, bzw. versteht :)

Schön daß wir uns am Ende doch noch verstehen :wink:

Ist aber schon irgendwie schlechter Stil, Daten von einer Anwendungen mittels Clipboard in eine andere zu schaufeln. Gerade bei Word und OpenOffice gibt es doch die Office-Automation. Die ist natürlich um etliches komplizierter als das Clipboard.

Perlsau 30. Jan 2012 23:41

AW: Bild und Text in Zwischenablage kopieren
 
Zitat:

Zitat von sx2008 (Beitrag 1148422)
Im Clipboard dürfen sich gleichzeitig durchaus viele verschiedene Formate befinden.
Hier sind die Standardformate aufgelistet.
Um verschiedene Formate abzulegen muss man MSDN-Library durchsuchenOpenClipboard gefolgt von MSDN-Library durchsuchenEmptyClipboard aufrufen.
Danach kann man mehrmals MSDN-Library durchsuchenSetClipboardData aufrufen um die Daten einzufügen.
Zum Schluss darf man MSDN-Library durchsuchenCloseClipboard nicht vergessen.

Leider ist die Klasse TClipBoard hier nicht so flexibel und ruft OpenClipboard und Closeclipboard in Eigenregie auf.
Ich hoffe etwas Licht ins Dunkel gebracht zu haben.

Werd ich heute nicht mehr ausprobieren, zu viel Aufwand für diese späte Stunde. Aber wenn das geht, wenn dann also beim Einfügen in die Zielanwendung alle mit SetClipboardData eingefügten Inhalte verschiedenster Formate eingefügt werden, würde mich das doch sehr überraschen.

Gustav.R 1. Feb 2012 17:21

AW: Bild und Text in Zwischenablage kopieren
 
Zitat:

Zitat von Sir Rufo (Beitrag 1148408)
Ansonsten gibt es bei den Schweizern folgendes:Beide kombiniert sollten zum gewünschten Ergebnis führen :)


Konnte es gerade erst ausprobieren, klappt 1A (mit D5) :thumb:

Das RxRichedit mit Bildern und Text bestücken, alles darin markieren und ab damit in die Zwischenablage, kommt in OO-Writer und Word so an, wie gewünscht!

Vielen Dank!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:00 Uhr.
Seite 2 von 2     12   

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