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