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;