Hallöle...
Zitat:
Zwischenablage Zugriff verweigert kann nicht geöffnet werden.
...der Fehler kommt in diesem Falle aus einer Fremdkomponente. (DevExpress) Das das ein Windowsproblen ist, ist bekannt.
https://www.delphipraxis.net/164785-...-gesperrt.html
Mein MadExcept schließt immer die komplette Anwendung...
Welche Möglichkeiten gibt es das
anders abzufangen...
PS: In meinen Anwendungen habe ich immer eine Schleife mit Abbruchbedingung um den Except Block...wie kriege ich das mit der Fremdkomponente hin?
(ich weigere mich eigentlich bei DevExpress Workarounds einzuarbeiten...mit jeder neuen Version wieder von vorn.
) Oder direkt im
Vcl.Clipboard?
Delphi-Quellcode:
procedure TcxCustomTextEdit.PasteFromClipboard;
var
ANewSelStart: Integer;
ANewText, S: string;
begin
if Clipboard.HasFormat(CF_TEXT) then
if Focused then
begin
BeginUserAction;
try
S := Clipboard.AsText;
if CanChangeSelText(S, ANewText, ANewSelStart) then
InnerEdit.CallDefWndProc(WM_PASTE, 0, 0);
finally
EndUserAction;
end;
end
else
SelText := Clipboard.AsText;
end;
...
procedure TClipboard.Open;
begin
if FOpenRefCount = 0 then
begin
FClipboardWindow := Application.Handle;
if FClipboardWindow = 0 then
begin
FClipboardWindow := AllocateHWnd(MainWndProc);
FAllocated := True;
end;
if not OpenClipboard(FClipboardWindow) then
raise EClipboardException.CreateResFmt({$IFNDEF CLR}@{$ENDIF}SCannotOpenClipboard, // <---
[SysErrorMessage(GetLastError)]);
FEmptied := False;
end;
Inc(FOpenRefCount);
end;
Was würdet ihr empfehlen?