Ver Mensaje Individual
  #6  
Antiguo 25-04-2008
Avatar de PabloTech
PabloTech PabloTech is offline
Miembro
 
Registrado: ene 2007
Ubicación: Tucumán, Argentina
Posts: 82
Reputación: 18
PabloTech Va por buen camino
El programita esta muy bueno y sensillo pero yo hice algunos retoques.

Resulta que usando el código anterior se presentan dos problemas en el evento onTitleClick. El primero es, que cuando se hace un click por primera vez sobre el título de la grilla, PreviousColumnIndex vale -1 y DBGrid1.Columns[PreviousColumnIndex] produce error porque no existe el elemento -1. Para solucionarlo, cambio try por if; y queda:

Código Delphi [-]
    if PreviousColumnIndex > -1 then
    begin
      DBGrid1.Columns[PreviousColumnIndex].title.Font.Style :=
      DBGrid1.Columns[PreviousColumnIndex].title.Font.Style - [fsBold];
    end;

El segundo problema se produce cuando la columna no tiene asignado un campo para mostrar (ojo, esto tal vez sea un error lógico en el diseño de la ventana). Para evitar el error se agrega un if antes del último if; y queda:

Código Delphi [-]
    if Column.Field <> nil then
       if (Pos(Column.Field.FieldName, SortFieldNames) = 1)
       ...

¿Qué opinan?
Responder Con Cita