Re: ClipBoard zwischenspeichern
16. Mär 2004, 18:51
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.
"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking." (Dave Barry)
|