Imagem no DBgrid
OLá pessoal eu tenho alguns Dbgrid em meu sistema e gostaria de adicionar alguns icones em colunas dos dbgrid...
Tipo
tenho o dbgri do cadastro de clientes eu crio uma coluna sem vinculo com a tebla q nessa coluna gostaria q aparecesse uma imagem de um icone tudo isso sem vinculo com a tabela....
alguem sabe uma formula de fazer isso....
Tipo
tenho o dbgri do cadastro de clientes eu crio uma coluna sem vinculo com a tebla q nessa coluna gostaria q aparecesse uma imagem de um icone tudo isso sem vinculo com a tabela....
alguem sabe uma formula de fazer isso....
Tchucky
Curtidas 0
Respostas
Lehapan
18/05/2009
No evento DrawColumnCell do DBGrid escreva:
Obs.: você deve aumentar o tamanho da fonte do DBGrid para aumentar o Height das linhas.
espero ter ajudado.
var
bmpImagem: TBitmap;
CaminhoImg: string;
PosLeft, PosTop: integer;
begin
if UpperCase(Column.FieldName) = UpperCase(´Imagem´) then
begin
if Column.Field.AsString <> ´´ then
begin
{ Column.Field.AsString deve conter o nome do arquivo. Exemplo: Imagem.bmp}
CaminhoImg := ´C:\´ + Column.Field.AsString;
if FileExists( CaminhoImg ) then
begin
bmpImagem := TBitmap.Create;
bmpImagem.LoadFromFile( CaminhoImg );
DBGrid.Canvas.CopyRect( Rect, bmpImagem.Canvas,
Classes.Rect(0, 0, bmpImagem.Width, bmpImagem.Height) );
FreeAndNil( bmpImagem );
end
else
begin
DBGrid.Canvas.FillRect( Rect );
DBGrid.Canvas.Pen.Style := psClear;
end
;
end
;
end
else
begin
DBGrid.Canvas.FillRect( Rect );
DBGrid.Canvas.Font.Size := 8;
if Column.Alignment = taRightJustify then
PosLeft :=
Rect.Right - DBGrid.Canvas.TextWidth(Column.Field.AsString) - 4
else
PosLeft := Rect.Left + 2
;
PosTop := Rect.Top + Round( (Rect.Bottom - Rect.Top) / 2 ) - 6;
DBGrid.Canvas.TextOut( PosLeft, PosTop , Column.Field.AsString );
end
;
end;Obs.: você deve aumentar o tamanho da fonte do DBGrid para aumentar o Height das linhas.
espero ter ajudado.
GOSTEI 0