Hintergrund ist Folgender:
Delphi-Quellcode:
procedure TComboBoxReadOnly.SetReadOnly(Value: Boolean);
begin
...
if HandleAllocated then
SendMessage(EditHandle, EM_SETREADONLY, Ord(Value), 0);
end;
Du setzt EM_SETREADONLY nur, wenn die interne Komponente vorhanden ist (HandleAllocated=True), was ja vollkommen korrekt ist.
Ist die interne Komponente da aber noch nicht vorhanden, oder wird sie zwischendurch/danach
neu erstellt, ist/wird dieses natürlich nicht gesetzt.
Darum also Dieses ebenfalls setzen, nachdem die (neu) Komponente erstellt wurde.