Wie kann man das Clipboard auf Inhalt prüfen?
-
Hallo,
ein TMemo kennt ein paar Methoden um ein Clipboard zu verwalten, z.B.Memo1->PasteFromClipboard(); Memo1->CopyToClipboard(); Memo1->CutToClipboard(); //usw.
ich möchte in meinem Memo1 feststellen, ob der Zwischenspeicher leer ist oder nicht, dazu gibt's aber nichts?
//h __published: TMemo* Memo1; TPopupMenu* mnuMemo; TMenuItem* Item1Paste; //cpp if (Memo1->ClipboardIsEmpty()) //gibt's leider nicht! Item1Paste->Enabled = false;
Wie mach ich das?
-
Der Zwischenspeicher ist ja Windows-global und nicht pro Memo oder Fenster. Und ich weiß auch gar nicht, ob der Zwischenspeicher überhaupt den Zustand "leer" kennt
Vielleicht solltest du eher schauen, ob Text im Zwischenspeicher gespeichert ist (und wenn ja, ob mit Länge>0). Die genauen Funktionen kenne ich grad auch nicht, Google sollte aber helfen können
-
Danke @Badestrand,
unter der Prämisse, es gibt nur ein Clipboard() "Windows global" u kein spezielles nur für TMemo, wie ich vermutet hatte, müßte folgende Lösung ausreichen:#include <Clipbrd.hpp> bool TForm1::ClipboardIsEmpty(void) { bool empty; return (empty = Clipboard()->AsText.IsEmpty() ? true : false); }
-
Hi,
es gibt in der WinApi Funktionen, die aufs ClipBoard zugreifen, u.a.:
OpenClipboard( Memo1->Handle ); EmptyClipboard(); // weitere
mfg
kpeter
-
Hallo @kpeter, vielen Dank für den Tipp.
An die WinApi hatte ich gar nicht gedacht.Das werde ich jetzt nachholen und mir etwas näher anschauen. Vielleicht findet sich dort auch noch so die eine oder andere Idee.