Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Windows 11 - DoubleBuffered Problem

  Alt 26. Okt 2021, 17:29
So funktioniert es erst einmal als Test:
Delphi-Quellcode:
  TComboBox = class(Vcl.StdCtrls.TComboBox)
    procedure WMEraseBkgnd(var Message: TWmEraseBkgnd); message WM_ERASEBKGND;
  end;

  T... = class(TForm)
  ...
  end;

...

procedure TComboBox.WMEraseBkgnd(var Message: TWmEraseBkgnd);
begin
  FillRect(Message.DC, ClientRect, Brush.Handle);
  inherited;
end;
Schön ist das aber nicht. Erklären kann ich den Effekt aktuell nicht. Aus irgend einem Grund landet der Inhalt des einen Controls auf der Zeichenfläche des anderen...
Ich vermute, dass das daran liegt, dass Microsoft selbst das Neuzeichnen optimieren wollte. Ich habe aber aktuell nicht die Zeit das genauer zu prüfen.

Diese Änderung könnte man natürlich durch Umbiegen der VMT auch auf alle Comboboxen anwenden usw.

Dass Delphi Programme öfter von Virenscannern falsch erkannt werden nerft halt.
So allgemein stimmt das ja nicht einmal. Es sind immer wieder die gleichen Virenscanner, die leider aber relativ weit verbreitet sind. Das sind aber nur 4-5, die das so oft betrifft.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat