zeypa Cdt

Registrado: 16 Ago 2004Mensajes: 16
|
Publicado: Lun 16 Ago, 2004 12:56 pm Asunto: Utilizar CheckBox en DBGrid |
|
|
Hola de nuevo................
Existe alguna manera de que en un DBGrid, que visualiza unos campos de tipo bool, en lugar de que aparezca el True/False..........muestre un CheckBox?????
Muchas gracias |
|
cecito Capt

Registrado: 25 Nov 2003Mensajes: 164Ubicación: Arequipa - Perú
|
Publicado: Lun 16 Ago, 2004 2:10 pm Asunto: |
|
|
Debes tomar control del evento OnDrawColumnCell de tu grid. Ejemplo::
| Código: | void __fastcall TwListadoPredios::gridDrawColumnCell(TObject *Sender,
const TRect &Rect, int DataCol, TColumn *Column,
TGridDrawState State)
{
TCanvas * c = grid->Canvas;
if( DataCol == 3 )//El nro. de Columna que debe mostrar el CheckBox
DibujarCheckBox( c,Rect, Column->Field->AsString);
else
grid->DefaultDrawColumnCell(Rect,DataCol,Column,State);
} |
Y aqui lel Procedimiento que hace esto posible:
| Código: | void __fastcall DibujarCheckBox(TCanvas * c,
const TRect &Rect, AnsiString Valor)
{ TRect r = Rect;
UINT Check = 0;
if( Valor == "T" || Valor == "1" )
Check = DFCS_CHECKED;
c->FillRect(Rect);
r.Top += 2;
r.Bottom -= 1;
r.Left += 1;
r.Right -= 1;
DrawFrameControl(c->Handle,(RECT*)&r,
DFC_BUTTON, DFCS_BUTTONCHECK | Check );
}
|
Como trabajo con FireBird(Interbase) debo simular el tipo Boolean con enteros( guardando 1 o 0 ) o con chars de 1( guardando "T" o "F"), solo debes hacer una pequeña modificación el el procedimiento para que trabaje realmente con el tipo Boolean  |
|