Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- procedure TFORMPrincipal.DoDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
- var
- OffsetLeft: Byte;
- begin
- inherited;
- if Column.FieldName = 'nome_do_campo_no_dataset' then
- begin
- // As imagens são pintadas de forma centralizada dentro da célula do grid. Cada imagem, neste caso,
- // tem 16x16. O OffsetLeft seria a posição horizontal da da imagem na célula. -8 está sendo usado
- // porque as imagens tem 16 pixels de largura, logo, usa-se a metade disso (8). Ao mudar a largura
- // da imagem, altere este número de forma que ele seja metade da largura da imagem a ser pintada
- OffsetLeft := ((Rect.Right - Rect.Left) div 2) - 8;
- // Selecionando uma imagem de acordo com o valor atual do campo (exemplo)
- if Column.Field.AsString = 'I' then
- // As imagens estão em componentes TImage nomeados "IMAGxxxx" abaixo
- TDBGrid(Sender).Canvas.Draw(Rect.Left + OffsetLeft,Rect.Top,IMAGIndisponivel.Picture.Graphic)
- else if Column.Field.AsString = 'E' then
- TDBGrid(Sender).Canvas.Draw(Rect.Left + OffsetLeft,Rect.Top,IMAGRemetido.Picture.Graphic)
- else if Column.Field.AsString = 'F' then
- TDBGrid(Sender).Canvas.Draw(Rect.Left + OffsetLeft,Rect.Top,IMAGFalha.Picture.Graphic);
- end;
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement