![]() |
ClipBoard zwischenspeichern
Hallo,
wie könnte ich den aktuellen Inhalt der Zwischenablage zwischenspeichern und später wieder abrufen? Hatte es so versucht, allerdings werden der Variablen Ablage keine Werte zugeteilt, sprich sie bleibt leer. Es kommt auch keine Fehlermeldung. Was mache ich falsch? :gruebel:
Delphi-Quellcode:
Tschüß Markus
var Ablage:TClipBoard;
begin Ablage:=TClipBoard.Create; Ablage:=ClipBoard; //Speichern ... SetClipBoard(Ablage); //ClipBoard das gespeicherte zuweisen end; |
Re: ClipBoard zwischenspeichern
Den Inhalt der Zwischenablage zu speichern, geht leider nicht so einfach.
Dein Code macht folgendes: Zuerst wird ein neues TClipboard-Objekt erzeugt und der Variablen "Ablage" zugewiesen. Dann weist du "Ablage" das von Delphi generierte Clipboard-Objekt zu. Ergebnis: "Ablage" und "Clipboard" zeigen auf das selbe Objekt. Die Referenz auf dein selbst erzeugtes TClipboard-Objekt geht verloren (Speicherleck!). Zum Schluss setzt du das Objekt, auf das "Ablage" verweist, als neues Standard-Clipboard-Objekt ein. Das ist aber das selbe wie das ursprüngliche Standard-Clipboard-Objekt - diese Zuweisung bewirkt also eigentlich überhaupt nichts. Aber selbst wenn du mit einer echten Kopie von "Clipboard" arbeiten würdest, hätte dies keinerlei Auswirkungen auf den Inhalt der von Windows verwalteten Zwischenablage. Um diesen trotzdem zu Speichern musst du den Inhalt der Zwischenablage über Clipboard.GetAsHandle auslesen, in einer Variablen speichern und zum Schluss über Clipboard.SetAsHandle wieder zurückschreiben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:38 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