FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
DBgrid y Checkbox
Hola, alguien podría decirme si puedo usar un checkbox sobre un campo de un dbgrid que es calculado? .Es decir, en el grid tengo un campo debe mostrar true o false si dos de las columnas del grid cumplen una condición.
Entonces, quisiera sustituir esta columna con valores true/false por un checkbox. Es posible? Gracias. Santi. |
#2
|
|||
|
|||
Hola Santi,
Te envío dos procedures que me sirvieron para hacer algo parecido a lo que comentas. Se trata de 'pintar' un checkbox en el grid y marcarlo si cumple la condición. Es así: Código:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var Check: Integer; R: TRect; begin if Column.FieldName = 'NombreCampo' then begin DBGrid1.Canvas.FillRect(Rect); Check := 0; if Table1.FindField('NombreCampo').AsBoolean then Check := DFCS_CHECKED; R:=Rect; InflateRect(R,-2,-2); //Disminuye el tamaño del CheckBox DrawFrameControl(DBGrid1.Canvas.Handle,R,DFC_BUTTON, DFCS_BUTTONCHECK or Check); end; end; procedure TForm1.DBGrid1CellClick(Column: TColumn); begin if Column.FieldName = 'NombreCampo' then begin Table1.Edit; Table1.FindField('NombreCampo').AsBoolean:=not Table1.FindField('NombreCampo').AsBoolean; end; end; hasta la próxima. |
#3
|
|||
|
|||
Muchas gracias ignasi,
ahora tengo que hacer lo mismo con un DBLookupComboBox, imagino que podré aplicar lo mismo (espero). Saludos. Santi. |
|
|
|