Fórum DBCheckbox no DBGrid - De outra maneira... #279984
04/05/2005
0
Estava procurando aqui no fórum uma forma de colocar o DBCheckBox dentro do DBGrid, e encontrei.
Mas a minha questão é a seguinte, no mesmo formulário eu tenho 24 DBCheckBox que setam a mesma informação. É possível aproveita-los?
Douglasf
Curtir tópico
+ 0Posts
04/05/2005
Raserafim
Gostei + 0
05/05/2005
Douglasf
Coloquei um ImageList com duas imagens, de desmarcado e marcado.
no Evento OnDrawColumn vem o código:
procedure TfrmCuidados.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var i : integer; begin for i := 0 to DataModule.Query.FieldCount -1 do begin if Column.Field.Tag <> 0 then begin if Column.Field.Tag = DataModule.Query.Fields[i].Tag then begin DBGrid1.Canvas.FillRect(Rect); ImageList1.Draw(DBGrid1.canvas, Rect.Left + 10, Rect.Top + 1, 0); if dmPE.qryCuidado.Fields[i].AsString= ´s´ then ImageList1.Draw(DBGrid1.canvas, Rect.Left + 10, Rect.Top + 1, 1) else ImageList1.Draw(DBGrid1.canvas, Rect.Left + 10, Rect.Top + 1, 0); end; end; end; end;
no caso é só isso.
para isso funcionar ao clicarmos na coluna coloquei :
with DataModule do begin Query.Edit; if (Column.Field.Tag > 0) and (Column.Field.Tag < 25) then if Column.Field.AsString = ´n´ then Column.Field.AsString := ´s´ else Column.Field.AsString := ´n´; end;
Gostei + 0
05/05/2005
Douglasf
no código vai aparecer algo como Column.Field.Tag > 0 ou Column.Field.Tag > 25.
para diferenciar os campos, que no caso é as horas do dias que vai de 1 a 24.
Gostei + 0
06/05/2005
Douglasf
estou enfrentando um problema... como citado acima estou utilizando esta função para quando clicar na celula o checkbox no grid aparecer selecionado:
with DataModule do begin Query.Edit; if (Column.Field.Tag > 0) and (Column.Field.Tag < 25) then if Column.Field.AsString = ´n´ then Column.Field.AsString := ´s´ else Column.Field.AsString := ´n´; end;
o problema é que ao clicar mais de uma vez em cima do grid, parece que a imagem vai para segundo plano e o que é mostrado é o valor real do campos, que no caso é[color=red:13d8dd7f09] s[/color:13d8dd7f09] para marcado e [color=red:13d8dd7f09]n[/color:13d8dd7f09] para desmarcado. Tem como colocar imagem para aparecer sempre em cima do grid?
Gostei + 0
09/05/2005
Douglasf
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)