Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   DBgrid y Checkbox (https://www.clubdelphi.com/foros/showthread.php?t=17663)

santi 17-01-2005 16:51:41

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.

ignasi 21-01-2005 14:52:19

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;

Espero te sirva,
hasta la próxima.

santi 24-01-2005 18:25:53

Muchas gracias ignasi,
ahora tengo que hacer lo mismo con un DBLookupComboBox, imagino que podré aplicar lo mismo (espero).
Saludos.
Santi.


La franja horaria es GMT +2. Ahora son las 23:18:40.

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