colocando imagem referente a linha de registro no dbgrid...
Gostaria de saber como exibir uma imagem no dbgrid a partir de um imagelist.
exemplo:
Table: Clientes
Campos: Codigo(integer), Nome(varchar), Status(char) *
* > opções 0, 1 ou 2 ( 0 = ativo, 1 = suspenso, 2 = bloqueado)
tenho um imagelist referentes a essas 3 posições.
Como referenciar na hora de exibição as linhas do dbgrid a essas imagens do imagelist ?
exemplo:
Table: Clientes
Campos: Codigo(integer), Nome(varchar), Status(char) *
* > opções 0, 1 ou 2 ( 0 = ativo, 1 = suspenso, 2 = bloqueado)
tenho um imagelist referentes a essas 3 posições.
Como referenciar na hora de exibição as linhas do dbgrid a essas imagens do imagelist ?
Thiagopedro
Curtidas 0
Respostas
Martins
07/02/2006
Segue um exemplo feito com ClientDataSet, é só vc adaptar as suas necessidades.
Boa Sorte!!!
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var Bmp : TBitmap; RecF : TRect; BmpX : Integer; Indice: Integer; begin RecF := Rect; If Column.Field = ClientDataSet1Status then begin If ClientDataSet1Status.Value = 0 then Indice := 0 else If ClientDataSet1Status.Value = 1 then Indice := 1 else Indice := 2; Bmp := TBitmap.Create; try ImageList1.GetBitmap(Indice, Bmp); BmpX := (Rect.Bottom - Rect.Top); RecF.Right := Rect.Left + BmpX; DbGrid1.Canvas.StretchDraw(RecF, Bmp); finally Bmp.Free; end; RecF := Rect; RecF.Left := RecF.Left + BmpX; end; DbGrid1.DefaultDrawColumnCell(RecF, DataCol, Column, State); end;
Boa Sorte!!!
GOSTEI 0