Tenho uma tabela temporaria(TblPes) onde trago algumas informações e um campo chamado "Seleciona" onde informo S e N, então tenho o código abaixo para no evento OnCellClick do DbGrid, onde verifico se o Field selecionado e passo o valor de S para N ou de N para S.
procedure TFrmPesCidade.DbgPesCellClick(Column: TColumn);
begin
if DbgPes.SelectedField = TblPesSeleciona then
begin
if TblPesSeleciona.AsString = 'S' then
begin
TblPes.Edit;
TblPesSeleciona.AsString := 'N'
end
else
begin
TblPes.Edit;
TblPesSeleciona.AsString := 'S';
end;
end;
end;
e para preencher o campo no DbGrid com o checkbox eu utilizo um ImageLIst conforme abaixo:
if Column.Field = TblPesSeleciona then
begin
DbgPes.Canvas.FillRect(Rect);
if (TblPesSeleciona.AsString = 'S') then
begin
ImageList1.Draw(DbgPes.Canvas,Rect.left +1,rect.top+1,1)
end
else
if (TblPesSeleciona.AsString = 'N') then
begin
ImageList1.Draw(DbgPes.Canvas,Rect.left +1,rect.top+1,0);
end;
end;
Então quando eu clico ele muda para N onde mostra a caixa limpa e depois clico novamente para mudar para S e ai mostra a caixa marcada com outra imagem, o meu problema é que tem hora que não aparece a caixa e aparece a letra, onde também deixa até apagar, como faço para resolver isso ?
Pergunta
robinhocne
Tenho uma tabela temporaria(TblPes) onde trago algumas informações e um campo chamado "Seleciona" onde informo S e N, então tenho o código abaixo para no evento OnCellClick do DbGrid, onde verifico se o Field selecionado e passo o valor de S para N ou de N para S.
e para preencher o campo no DbGrid com o checkbox eu utilizo um ImageLIst conforme abaixo:Então quando eu clico ele muda para N onde mostra a caixa limpa e depois clico novamente para mudar para S e ai mostra a caixa marcada com outra imagem, o meu problema é que tem hora que não aparece a caixa e aparece a letra, onde também deixa até apagar, como faço para resolver isso ?
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.