Einzelnen Beitrag anzeigen

Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#5

AW: Zwischenablage Zugriff verweigert

  Alt 16. Aug 2022, 09:42

Zitat:
Die DevExpress-Sourcen in ein Git-Repo.
...habe ich ja schon. ...mache ich schon. Das Problem ist aber auch, daß mit jeder neuen Version auch die Workarounds fehlerhaft sein können...hatte ich schon mal.

Ich fange mit jeder Version wieder an zu testen.

Aktuell wird das Grid komplett schwarz wenn ApplicationProcessMessages aufgerufen wird. (nicht fragen , Control/Form.Repaint in allen Varianten funktioniert trotz Aufruf teilweise nicht nicht. Die Labels und die Progressbar einer "StatusForm" (TForm) sind manchmal eingefroren)

@Uwe:
Du hast doch einen heißen Draht zu Emba. Vieleicht können sie die Schleife in TClipboard.Open einbauen.

Vorschlag zum Optimieren:
Delphi-Quellcode:
procedure TClipboard.Open;
var
  OpenCount: Integer;
  OpenResult: LongBool;
begin
  OpenCount := 0;
  OpenResult := False;

  if FOpenRefCount = 0 then
  begin
    FClipboardWindow := Application.Handle;
    if FClipboardWindow = 0 then
    begin
      FClipboardWindow := AllocateHWnd(MainWndProc);
      FAllocated := True;
    end;

    repeat
      Inc(OpenCount);
      OpenResult := OpenClipboard(FClipboardWindow);
      if not OpenResult then
      begin
        Sleep(30);
      end;
    until OpenResult or (OpenCount > 50);
    if not OpenResult then
    begin
       raise EClipboardException.CreateResFmt({$IFNDEF CLR}@{$ENDIF}SCannotOpenClipboard,
          [SysErrorMessage(GetLastError)]);
    end;

    FEmptied := False;
  end;
  Inc(FOpenRefCount);
end;

Geändert von haentschman (16. Aug 2022 um 09:59 Uhr)
  Mit Zitat antworten Zitat