Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 02-09-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

De este modo tiene que funcionarte:
Código PHP:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  
TDBCheckBox *CB static_cast<TDBCheckBox*>(DBCheckBox1);
  
CB->Caption    "";
  
CB->ValueChecked 1;
  
CB->ValueUnchecked 0;
  
CB->DataSource DataSource1;
  
CB->DataField  "SELECCION";
  
CB->Visible    false;
}


void __fastcall TForm1::DBGrid1DrawColumnCell(TObject *Sender,
      const 
TRect &Rectint DataColTColumn *ColumnTGridDrawState State)
{
  const 
int IsChecked[2] = {DFCS_BUTTONCHECKDFCS_BUTTONCHECK DFCS_CHECKED};

  
TDBGrid *GR static_cast<TDBGrid*>(Sender);
  
TDBCheckBox *CB static_cast<TDBCheckBox*>(DBCheckBox1);
  
TRect DrawRect;

  if (
Column->Field->FieldName == CB->DataField) {
    if (
State.Contains(gdFocused) ) {
      
CB->Left    GR->Left Rect.left 2;
      
CB->Top     GR->Top  Rect.top 2;
      
CB->Width   Rect.Right Rect.Left;
      
CB->Height  Rect.Bottom Rect.Top;
      
CB->Visible true;
    }  else {
      
DrawRect Rect;
      
InflateRect(&DrawRect, -1, -1);
      
GR->Canvas->FillRect(Rect);
      
DrawFrameControl(GR->Canvas->Handle, &DrawRectDFC_BUTTON,
        
IsChecked[Column->Field->AsInteger]);
    }
  }
}

void __fastcall TForm1::DBGrid1ColExit(TObject *Sender)
{
  
TDBGrid *GR static_cast<TDBGrid*>(Sender);
  
DBCheckBox1->Visible GR->SelectedField->FieldName == DBCheckBox1->DataField;

(fijate que usé un TDBCheckBox en lugar de un TCheckBox)

Y en la definición de la tabla agregaría:
Código SQL [-]
CREATE TABLE TABLA (
  ...,
  SELECCION   SMALLINT DEFAULT 0 CHECK(SELECCION IN (0,1)),
  ...
);

Y, como lógicamente te indica Casimiro, tu DataSet tiene que tener la capacidad de actualizar la tabla.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 02-09-2016 a las 20:39:51. Razón: cambiar nombre de tabla
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
CheckBox en DBGrid DrkMgc Varios 9 18-05-2011 17:41:47
Checkbox en un DBGrid alfil123 Conexión con bases de datos 1 25-10-2006 19:02:57
Checkbox en un dbgrid el_barto OOP 7 25-08-2005 10:08:21
DBgrid y Checkbox santi Varios 2 24-01-2005 18:25:53
CheckBox en un DBGrid DJ VMan MySQL 4 26-06-2003 17:05:26


La franja horaria es GMT +2. Ahora son las 16:37:22.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi