CheckBox dentro do DBGrid

Delphi

08/07/2009

aew pessoal....

estou precisando colocar um dbcheckbox dentro do dbgrid...

onde eu possa checkar ele ou de-checkar....

alguem pode me dar um Help....

valeu...


Felipe_b350

Felipe_b350

Curtidas 0

Respostas

Nasguone

Nasguone

08/07/2009

Já postei este exemplo na verdade ele serve para botão edit check .
Insira um Datasource e um clientdataset coloque dois campos um tipo string e outro tipo boolean....

espero que te ajude

Sem mais
E.C.S

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBClient, StdCtrls, Grids, DBGrids;

type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ClientDataSet1: TClientDataSet;
ClientDataSet1TESTE: TStringField;
ClientDataSet1TESTE2: TBooleanField;
CheckBox1: TCheckBox;
procedure DBGrid1CellClick(Column: TColumn);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure FormCreate(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked = true then
ShowMessage(´ok´);
end;

procedure TForm1.DBGrid1CellClick(Column: TColumn);
var
F : integer;
Mpfc : string;
begin
F := DBGrid1.Columns.Grid.SelectedIndex;
Mpfc := DBGrid1.Columns.Items[F].FieldName;
//libera data fila de corte
if Column.Field=ClientDataSet1TESTE2 then
begin
ClientDataSet1.Edit;
ClientDataSet1TESTE2.AsBoolean:=CheckBox1.Visible;
end;

end;

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
DBGrid1.DefaultDrawDataCell(Rect, DBGrid1.columns[datacol].field, State);
//insere datas liberação do corte
CheckBox1.Visible := DBGrid1.SelectedField = ClientDataSet1TESTE2;
if CheckBox1.Visible then
if gdFocused in State then
begin
// ComboBox1.Text :=dmatc.cdPecasAtc_Qtde_Linhas.AsString;
CheckBox1.SetBounds(
Rect.Left,Rect.Top +10,
Rect.Right-Rect.Left+10,
Rect.Bottom-Rect.Top);
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
ClientDataSet1.CreateDataSet;
end;

end.


GOSTEI 0
.lg.

.lg.

08/07/2009

Se o tipo do campo for booleana, o dbgrid lhe mostrará um checkbox sem vc ter que fazer nada.
No banco de dados, verifique se o campo que vc quer, se é do tipo boolean. se for ta de boa, se não for... vc pode criar um field no seu DataSet do tipo boolean e no beforePost vc valida o que for que vc quer.


GOSTEI 0
POSTAR