Ich habe eine Methode, die in einer
Unit mit global verfügbare Klassen und Methoden liegt.
Die Methode behandelt Clipboard-Operationen. Hierbei kann es zu Konflikten und folgender Fehlermeldung kommen: "Zwischenablage Zugriff verweigert kann nicht geöffnet werden"
Nach meiner Recherche kommt es zu dieser Meldung, wenn zwischen Clipboard.Open und Clipboard.Close ein weiterer Zugriff auf die Zwischenablage erfolgt.
Als Lösung viel mir als erstes ein, dass der Code von Clipboard.Open und Clipboard.Close eigentlich ein kritischer Abschnitt ist. Leider kenne ich mich mit der Implementierung von critical sections unter Delphi nicht so gut aus. Wie ließe sich das in diesem Kontext implementieren? Oder gibt es andere Lösungen für das Problem?
Hier mal etwa Code:
Delphi-Quellcode:
Unit GlobalStuff;
...
function SaveClipboard : TList;
...
function SaveClipboard : TList;
begin
...
ClipBoard.Open;
...
ClipBoard.Close;
...
end;
Wäre es zb. möglich eine
Unit-globale Variable vom Typ CriticalSection zu deklarieren und diese dann in SaveClipboard zu verwenden?