Delphi-PRAXiS

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)

Gustav.R 30. Jan 2012 19:13

Bild und Text in Zwischenablage kopieren
 
Hallo liebe Fachleute!

Ich möchte eine Bitmap *UND* einen String gleichzeitig in die Zwischenablage kopieren, so daß man es in Word oder OO-/LO-Writer einfügen kann. Aus der Zwischenablage sollen die Daten für einen Aufkleber (Bild mit Beschreibung) rauskommen. Ohne die Seriendruckfunktionen von Word/Writer benutzen zu müssen.

Das ZwischenablageBitmapBestücken ist ja mit

clipboard.Assign(Image1.Picture.Bitmap);


kein Problem und das ZwischenablageStringBestücken mit

ClipBoard.AsText := s;

auch nicht.


Aber Beides zugleich scheint mir ein absoluter Horrortrip zu werden, mit ClipboardRegisterFormatZeugundwar usw. :-(

Hat jemand eine Empfehlung für eine Komponente, die das bereits kann?

Für uraltes Delphi 5, notfalls sogar für das neumodische Delphi 7 :oops:

GG

bernerbaer 30. Jan 2012 20:58

AW: Bild und Text in Zwischenablage kopieren
 
_Ich_ würde mal rtf in Betracht ziehen. Ich denke das Richtextcontrol von jvcl unterstützt das Einbinden von Bildern. Somit könnte das Standard Richtextformat für die Zwischenablage verwendet werden.

Gustav.R 30. Jan 2012 21:10

AW: Bild und Text in Zwischenablage kopieren
 
Zitat:

Zitat von bernerbaer (Beitrag 1148394)
_Ich_ würde mal rtf in Betracht ziehen. Ich denke das Richtextcontrol von jvcl unterstützt das Einbinden von Bildern. Somit könnte das Standard Richtextformat für die Zwischenablage verwendet werden.

Würde ich auch in Betracht ziehen.

Aber warum frage ich hier überhaupt, wenn's so einfach wäre?

Trotzdem danke für Deinen Vorschlag!

GG

Sir Rufo 30. Jan 2012 21:31

AW: Bild und Text in Zwischenablage kopieren
 
Zitat:

Zitat von Gustav.R (Beitrag 1148396)
Aber warum frage ich hier überhaupt, wenn's so einfach wäre?

Vielleicht hast du deine Frage nicht verstanden, oder falsch formuliert.
Du hast nach einer Komponente gefragt, man hat dir eine Komponente genannt, die das evtl. könnte ... wo ist jetzt das Problem?

Gustav.R 30. Jan 2012 21:43

AW: Bild und Text in Zwischenablage kopieren
 
Zitat:

Zitat von Sir Rufo (Beitrag 1148399)
Zitat:

Zitat von Gustav.R (Beitrag 1148396)
Aber warum frage ich hier überhaupt, wenn's so einfach wäre?

Vielleicht hast du deine Frage nicht verstanden, oder falsch formuliert.
Du hast nach einer Komponente gefragt, man hat dir eine Komponente genannt, die das evtl. könnte ... wo ist jetzt das Problem?

Müchte mich daher bei "bernerbaer" nochmals entschuldigen, falls ich ihm auf den Schlips getreten haben sollte.

Entschuldigung bitte, bernerbaer!

bernerbaer 30. Jan 2012 21:54

AW: Bild und Text in Zwischenablage kopieren
 
Zitat:

Zitat von Gustav.R (Beitrag 1148402)
Müchte mich daher bei "bernerbaer" nochmals entschuldigen, falls ich ihm auf den Schlips getreten haben sollte.

Entschuldigung bitte, bernerbaer!

Kein Problem, ich trage selten einen Schlips, und so spät schon gar nicht.

[edit]
vielleicht gibt die Demo bei JVCL ja einen Gedankenanstoss:
..\jvcl\examples\JvRichEdit\EditorDemo.dpr
[/edit]

Sir Rufo 30. Jan 2012 22:22

AW: Bild und Text in Zwischenablage kopieren
 
Ansonsten gibt es bei den Schweizern folgendes:Beide kombiniert sollten zum gewünschten Ergebnis führen :)

Gustav.R 30. Jan 2012 22:28

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 :)

Vielen Dank für den guten Willen :thumb:

GG

Perlsau 30. Jan 2012 22:32

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 :)

Man kann sogar in einer Anwendung, die ein TjvRichEdit enthält, mit Ctrl-V ein Bild einfügen.

Sir Rufo 30. Jan 2012 22:47

AW: Bild und Text in Zwischenablage kopieren
 
Zitat:

Zitat von Perlsau (Beitrag 1148410)
Zitat:

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

Man kann sogar in einer Anwendung, die ein TjvRichEdit enthält, mit Ctrl-V ein Bild einfügen.

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

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 00:58 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