Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - SetClipboard - neue Zwischenablage / rtf-Code einfügen


galagher - Di 17.10.17 20:52
Titel: SetClipboard - neue Zwischenablage / rtf-Code einfügen
Hallo!

Wie verwende ich SetClipboard richtig? Trotzdem ich ein neues TClipBoard zuweise, wird der Inhalt der "echten" Zwischenablage überschrieben:


Delphi-Quelltext
1:
2:
3:
4:
5:
var
  NewClipBoard: TClipBoard;
begin
  SetClipboard(NewClipBoard);
//dann etwas in NewClipBoard kopieren

Und muss ich anschliessend die Windows-Zwischenablage wiederherstellen?

Alternativ: Wie sichere ich den Inhalt der Windows-Zwischenablage und stelle ihn danach wieder her?


Delete - Di 17.10.17 21:40

- Nachträglich durch die Entwickler-Ecke gelöscht -


galagher - Di 17.10.17 22:03

Hallo Frühlingsrolle!

user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
Möchtest du dir einen Zustand merken, solltest du ein TClipboard Objekt erzeugen (und freigeben).
Mit der Eigenschaft .AsText kannst du den jeweiligen Text abfragen/setzen.
Wie kopiere ich dann den Inhalt der Windows-Zwischenablage, der ja alles mögliche sein kann, da hinein, und wie lese ich das dann wieder in die Windows-Zwischenablage ein?

user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
TMemo und Co. haben ebenso entsprechende Methoden wie .CopyToClipboard() und .PasteFromClipboard().
Das nützt mir nichts, es geht darum, eine RTF-Tabelle als Tabelle einzufügen, nicht als rtf-Code! Ich kann auch .SelText nicht verwenden, weil das nicht die Tabelle, sondern den rtf-Code einfügt.

Zuerst sehe ich aber mir SetClipboard noch mal an!

//Edit:

Delphi-Quelltext
1:
2:
3:
4:
5:
  SetClipboard(NewClipboard);
  tmpJvRichEdit.SelectAll;
  tmpJvRichEdit.CopyToClipboard;
  JvRichEdit.PasteFromClipboard;
  NewClipboard.Free;

Und trotzdem landet alles in der Windows-Zwischenablage! Ich möchte aber, dass CopyToClipboard und PasteFromClipboard mit NewClipboard arbeiten. Wie bekomme ich da sonst Daten rein und raus?


galagher - Mi 18.10.17 19:15

Die Lösung besteht darin, rtf-formatierten Text an beliebiger Stelle einzufügen, in meinem Fall eben eine Tabelle:
http://delphidabbler.com/tips/57
Ein Zufallstreffer!

//Edit: Ich habe daher den Titel angepasst.