Ver Mensaje Individual
  #4  
Antiguo 18-07-2022
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.735
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
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:
  1. Cargar
  2. Validar/Calcular/Limitar/Filtrar/etc.
  3. 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; // Esto debería ser TDBGrid(Sender)
  Texto        : String;
  Rectangulo   : TRect; // Esto no se necesita. Es lo mismo que el parametro Rect
begin
  {
  //************** Auto Ancho *********************//
  if length(Column.Field.AsString) > Column.Field.Tag then
  begin
    Column.Field.Tag := length(Column.Field.AsString);
    Column.Field.DisplayWidth := Column.Field.Tag + 1;
  end;
  }

  if (gdSelected in State) then
  begin
  ...
Responder Con Cita