Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-04-2008
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
Chekbox en dbgrid

hola a todos, necesito ayuda para mostrar un dato de tipo boolean como un check box en un dbgrid, es decir que cuando el campo sea true el chekbox del grid me apareza checkeado y de lo contrario no. por favor si alguien tiene experiencia con esto le agradecere bastante gracias de antemano...



El conocimiento nos hace sabios, compartirlo nos hace aun mas!!!
Responder Con Cita
  #2  
Antiguo 25-04-2008
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Si utilizas la búsqueda del foro y buscas 'CheckBox' y 'DBGrid' te saldrán múltiples hilos al respecto. Este tema se ha tratado ya en numeros temas.
__________________
Piensa siempre en positivo !
Responder Con Cita
  #3  
Antiguo 25-04-2008
Avatar de Dedalo
Dedalo Dedalo is offline
Miembro
 
Registrado: abr 2008
Ubicación: Albacete (España)
Posts: 32
Poder: 0
Dedalo Va por buen camino
Esto lo vi en Internet, no recuerdo donde, y funciona razonablemente bien.

Código Delphi [-]
 
 

unit MiUnidad;
 
interface
 
uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 ExtCtrls, DBCtrls, StdCtrls, Mask, Db, DBTables, ComCtrls, ToolWin,
 Grids, DBGrids, Menus, Buttons,Registry, ImgList, USelDatos, Limite;
 
Const
 CtrlState : array[Boolean] of Integer = (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED);
 
..... //Aqui va la definicion del form
 
implementation
 
//Asigna los siguientes eventos a todos los DBGrid que tengas en tu form con campos Boolean.
 
// El siguiente evento cambia el estado del boolean Cuando clicamos en el
procedure TForm.DBGCellClick(Column: TColumn);
begin
 if (Column.Field.DataType = ftBoolean) then
 begin
  Column.Field.DataSet.Edit;
  Column.Field.AsBoolean := not Column.Field.AsBoolean;
  Column.Field.Dataset.Post;
 end;
end;
 
// El siguiente evento cambia el estado si pulsamos espacio estando seleccionado un campo boolean
procedure TForm.DBGKeyPress(Sender: TObject; var Key: Char);
begin
 with TDBgrid(Sender) do
 begin
  if (Key = ' ') and (SelectedField.DataType = ftBoolean) then
  begin
   SelectedField.Dataset.Edit;
   SelectedField.AsBoolean := not SelectedField.AsBoolean;
   SelectedField.Dataset.Post;
  end;
 end;
end;
 
// El siguinete evento dibuja la casilla con o sin marca segun el estado del campo
procedure TForm.DBGDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
 with TDBgrid(Sender) do
 begin
  if Column.Field.DataType = ftBoolean then
  begin
   Canvas.FillRect(Rect);
   DrawFrameControl(Canvas.Handle, Rect, DFC_BUTTON, CtrlState[Column.Field.AsBoolean]);
  end;
 end;
end;
 
// Aqui evitamos que la celda se ponga en modo edit aruinando la estetica
procedure TForm.DBGColEnter(Sender: TObject);
begin
 if TDBgrid(Sender).SelectedField.DataType = ftBoolean then
  TDBgrid(Sender).Options := TDBgrid(Sender).Options - [dgEditing];
end;
 
// Aqui reponemos el estado inicial al abandonar la celda.
procedure TForm.DBGColExit(Sender: TObject);
begin
 if TDBgrid(Sender).SelectedField.DataType = ftBoolean then TDBgrid(Sender).Options := Opciones;
end;


end.

Última edición por Dedalo fecha: 25-04-2008 a las 23:08:28.
Responder Con Cita
  #4  
Antiguo 25-04-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Benditas sean las JEDI VCL

Utilizá TJvDBGrid y olvidate de tantos problemas.
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #5  
Antiguo 25-04-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
como ya te dijeron, este tema ya se ha tratado muchas veces. En muchas de esas veces, no es necesario escribir ni una sola línea de código.

Basta usar un dbgrid que tenga esa posibilidad, ya muchos la tienen.
DevExpress, por ejemplo, pero es de pago.

EL TjvDBGrid de las Jedi lo hace, es gratis y sencillo de instalar.
__________________

Responder Con Cita
  #6  
Antiguo 25-04-2008
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
cita

Cita:
Empezado por ContraVeneno Ver Mensaje
como ya te dijeron, este tema ya se ha tratado muchas veces. En muchas de esas veces, no es necesario escribir ni una sola línea de código.

Basta usar un dbgrid que tenga esa posibilidad, ya muchos la tienen.
DevExpress, por ejemplo, pero es de pago.

EL TjvDBGrid de las Jedi lo hace, es gratis y sencillo de instalar.
hola donde puedo conseguir el tjvdbgrid ?
Responder Con Cita
  #7  
Antiguo 26-04-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Cita:
Empezado por ingmichel Ver Mensaje
hola donde puedo conseguir el tjvdbgrid ?
http://sourceforge.net/projects/jvcl
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #8  
Antiguo 16-06-2008
Loarik Loarik is offline
Miembro
 
Registrado: dic 2007
Posts: 17
Poder: 0
Loarik Va por buen camino
checkbox en dbgrid y scrollbar

Hola compañeros,
Por diversos motivos no puedo instalar componentes nuevos y he utilizado el codigo que indicais para dibujar checkbox en dbgrid, se muestran perfectamente pero al mover la barra de desplazamiento se borra todo y queda la columna vacia, os pasa a vosotros?, alguna solucion?
Responder Con Cita
Respuesta



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
Pasar lineas de in dbgrid a otro dbgrid look OOP 3 21-09-2007 23:16:29
PickList DBGrid (Pregunta acerca de los DBGRID) lazarous Varios 1 10-01-2006 09:53:12
Como extraer datos de un DBgrid a otro DBgrid mickey Conexión con bases de datos 13 29-01-2004 05:05:30


La franja horaria es GMT +2. Ahora son las 14:55:20.


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