Vieleicht können sie die Schleife in TClipboard.Open einbauen.
Das wird aus Kompatibilitätsgründen wohl nicht passieren. Ich könnte mir eher eine Lösung dieser Art vorstellen (später mal direkt in TClipboard):
Delphi-Quellcode:
type
TClipboardHelper = class helper for TClipboard
function TryOpen(MaxTries: Integer = 50; Delay: Integer = 20): Boolean;
end;
function TClipboardHelper.TryOpen(MaxTries: Integer = 50; Delay: Integer = 20): Boolean;
begin
var cnt := 0;
while True do begin
try
Open;
Exit(True);
except
on EClipboardException do begin
Inc(cnt);
if cnt < MaxTries then
Sleep(Delay)
else
Exit(False);
end;
end;
end;
end;
Das erfordert aber eine Anpassung aller Open-Aufrufe.