Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > Trucos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Los mejores trucos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-06-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Checkbox en un TDBGrid

¿Quiere mostrar en una rejilla (DBGrid) el valor de una columna lógica utilizando una casilla de verificación (checkbox)?

Es muy fácil lograrlo, si se trata de una rejilla sólo lectura. Asegúrese en primer lugar de que la rejilla tenga la propiedad ReadOnly a True, y que la opción dgEditing de Options esté inactiva. Utilizaremos como ejemplo la tabla vendors.db de dbdemos, que contiene un campo Preferred, de tipo lógico. Una vez que conecte esta tabla a una rejilla y haya creado columnas para todos los campos de la tabla, seleccione la columna del campo Preferred y limpie su propiedad FieldName. Seleccione nuevamente la rejilla y cree la siguiente respuesta para su evento OnDrawColumnCell:

Código Delphi [-]
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
   DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
   Check: Integer;
begin
   if Column.FieldName = '' then
   begin
      DBGrid1.Canvas.FillRect(Rect);
      Check := 0;
      if Table1['PREFERRED'] then
         Check := DFCS_CHECKED;
      DrawFrameControl(DBGrid1.Canvas.Handle, Rect,
         DFC_BUTTON, DFCS_BUTTONCHECK or Check);
   end
   else
      DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

La función DrawFrameControl pertenece al API de Windows. Puede consultar la ayuda en línea para comprobar todas las posibilidades que ofrece dicha función.
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


La franja horaria es GMT +2. Ahora son las 10:13:30.


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