![]() |
![]() |
| Paypal | 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. |
![]() |
|
|
|