da beim Ändern der Styles ein RecreateWnd gefahren wird solltest Du
IMHO so vorgehen
die Prüfung "if FReadOnly <> Value then" entfernen ...
und SetStyle überschreiben
Delphi-Quellcode:
procedure SetStyle(Value: TComboBoxStyle);override;
procedure TComboBoxReadOnly.SetReadOnly(const Value: Boolean);
begin
begin
FReadOnly := Value;
if HandleAllocated then
SendMessage(EditHandle, EM_SETREADONLY, Ord(Value), 0);
end;
end;
procedure TComboBoxReadOnly.SetStyle(Value: TComboBoxStyle);
begin
inherited;
ReadOnly := FReadOnly;
end;