Entwickler-Ecke
Dateizugriff - Zwischenablage speichern und setzen
Ja-Pa - Mi 22.10.03 17:33
Titel: Zwischenablage speichern und setzen
Hallo,
ich möchte die Zwischenablage von Windows erst abspeichern, dann für mein Programm intern verwenden und dann die ursprüngliche Zwischenablage wieder setzen.
Wie kann ich den gesamten Inhalt des Clipboards in einer Variable speichern und dann auch wieder setzen?
Es sollte auch möglich sein, wenn Bilder oder Dateien in der Ablage sind. Einfach eine Instanz von TClipboard zu speichern geht leider nicht :(
Gruß, Ja-Pa
Ja-Pa - Do 23.10.03 15:33
Naja, etwas komplizert und lang :D, aber solange es seinen Zweck erfüllt :wink:
Wer was kürzeres (als 206 Zeilen) weiß, kann es ja trozdem noch posten.
Gruß, Ja-Pa
maximus - Do 23.10.03 17:03
Wo genau is da dein problem? ..du wirst noch öffter mit code zu tun haben, der grössen als 200 zeichen ist. Mach aus den oberen procedure eine unit und gut is :wink: ..die lösung ist doch ideal - alles schön mit streams etc. was will man mehr?
cu,
Ja-Pa - Sa 25.10.03 12:39
Na gut, ihr habt mich überredet :wink:
Ja-Pa - Sa 25.10.03 12:43
| maximus hat folgendes geschrieben: |
| der grössen als 200 zeichen ist. |
Ja 200 Zeichen wär kein Problem, ... aber 200 Zeilen.
Ich mache es jetzt aber trotzdem mit einer neuen Unit.
Es ist nur so, dass ich soviel eigentlich gar nicht gewollt habe :wink:
Eigentlich wollte ich die Zwischenablage nur für ein paar Millisekunden in einer Variablen zwischenspeichern und nicht gleich auf der Festplatte,
aber trotzdem danke. Den Zweck erfüllt es auf jeden Fall :wink:
Gruß, Ja-Pa
maximus - Sa 25.10.03 14:08
| Ja-Pa hat folgendes geschrieben: |
...
Eigentlich wollte ich die Zwischenablage nur für ein paar Millisekunden in einer Variablen zwischenspeichern und nicht gleich auf der Festplatte,
aber trotzdem danke. Den Zweck erfüllt es auf jeden Fall :wink:
...
|
Also dann hast du den code anscheinend falsch verstanden! Hier wird nix auf platte gespeichert, wenn du es nicht willst :wink: Das sind doch nur unschuldige streams...ob du sie auf platte (TFileStream) oder in den speicher (TMemoryStream) schreibst bleibt dir überlassen!
Definiere den TMemoryStream einfach als member in deinem objekt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| ms: TMemoryStream; ...
ms := TMemoryStream.Create; ... ms.Free; ...
procedure TForm1.Button1Click(Sender: TObject); begin SaveClipboard(ms); end;
procedure TForm1.Button3Click(Sender: TObject); begin LoadClipboard(ms); end; |
..es bleibt so alles im speicher! Nur wenn du deine clipboard kopie persistent haben willst, musst du auf platte speichern :wink:
cu,
Ja-Pa - Mo 27.10.03 13:26
| Zitat: |
ms.SaveToFile('c:\temp\ClipBrdSaved.dat');
|
Das hab ich gemeint mit speichern auf der Festplatte (lecker :wink:).
Aber wenn es auch anders geht, Danke!
Ich kenne mich mit Streams noch nicht so aus :oops:
mfg, Ja-Pa
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!