Esta é uma dica muito simples mas que produz um efeito muito legal.
Já encontrei vários programas que, ao mostrar determinados dados em  um DBGrid, pecavam pela falta de clareza. Por exemplo: Para mostrar se  um cadastro estava ativo ou não, apresentava no grid uma coluna que era  preenchida com Sim / Não.  Errado? Não. Mas você concorda que pode ficar  melhor não é?
Então ai vai minha dica para aperfeiçoar suas aplicações:
1. Estou partindo do ponto em que você ja tem seu ClientDataSet  vinculado a um DataSource o qual ja se encontra vinculado a um DBGrid.  No exemplo o ClientDataSet se chama TabAux e o DBGrid se chama Grade.
2. Insira um TImageList no seu form e adicione duas imagens.
Você pode baixar as imagens clicando aqui
3. No evento OnDrawColumnCell do seu DBGrid escreva o seguinte código:
if Column.Field=TabAuxATIVO then
begin Grade.Canvas.FillRect(Rect);
// Desenha o Quadrado
ImageList1.Draw(Grade.Canvas,Rect.Left+10,Rect.Top+1,0);
// Desenha o check sobre o quadrado quando ativo = ‘S’
if TabAuxATIVO.Text=‘S’ then // Cadastro está ativo
ImageList1.Draw(Grade.Canvas,Rect.Left+10,Rect.Top+1,1);
end;
begin Grade.Canvas.FillRect(Rect);
// Desenha o Quadrado
ImageList1.Draw(Grade.Canvas,Rect.Left+10,Rect.Top+1,0);
// Desenha o check sobre o quadrado quando ativo = ‘S’
if TabAuxATIVO.Text=‘S’ then // Cadastro está ativo
ImageList1.Draw(Grade.Canvas,Rect.Left+10,Rect.Top+1,1);
end;
4. O Resultado ficará assim
Espero que aproveite esta dica. Ela é simples, mas da um toque mais profissional para a sua aplicação.
Nenhum comentário:
Postar um comentário