Estuve haciendo pruebas y esto es lo que hace que falle:
Estableces el DisplayWidth durante el pintado de la celda.
Lo he quitado y veo que todo va bien.
Si deseas mantener esa funcionalidad, deberías pasarla al sitio donde se abren/cargan los datos (ComboBox1Change).
Como regla general, no deberías modificar datos/propiedades durante la visualización.
Paso 1:- Cargar
- Validar/Calcular/Limitar/Filtrar/etc.
- Dar formato
Paso 2:
Visualizar
Código Delphi
[-]procedure TFrmPrincipal.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
Var
Grid : TStringGrid; Texto : String;
Rectangulo : TRect; begin
if (gdSelected in State) then
begin
...