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.