Colocar uma imagem dentro de uma coluna no dbgrid

Delphi

21/03/2005

Estou com o seguinte problema na minha tabela existe um campo com o nome de Sinal, eu quero que se o texto que tiver na coluna dele e mostro uma imagem com a seta para cima na coluna Oscilação sendo que ela só servira para mostrar a imagem porque nem existe este campo na minha tabela. O problema é que eu não sei como criar um bitmap dentro de uma coluna.

Desde já Grato


Leonardobhbr

Leonardobhbr

Curtidas 0

Respostas

Raserafim

Raserafim

21/03/2005

pelo q entendi, vocë quer colocar uma figura em uma coluna do dbgrid, mas esta figura n´ao estã armazenada na tabela, e esta figura vai depender de uma condição. se for isso mesmo, vc pode resolver da seguinte forma:

coloque um ImageList para armazenar as imagens que vc poderá usar.

no evento OnDrawCollumCell declare uma variável do tipo TBitmap.

...
var
Btm: TBitmap;
begin
if Column.FieldName = ´Oscilacao´ then
begin
DBGrid.Canvas.FillRect(Rect);
Btm := TBitmap.Create;

if Column.Grid.Fields[Índice].AsString = ´ValorDaCondição´ then
ImageList1.GetBitmap(0, Btm)
else if Column.Grid.Fields[Índice].AsString = ´ValorDaCondição2´ then
ImageList.GetBitmap(1, Btm);

DBGrid.Canvas.Draw(Rect.Left, Rect.Top, Btm);
Btm.Free;

end;
end;


obs: o nome Índice dentro do cochetes significa o índice da coluna que tem o valor que você quer comparar, ou seja é o número da coluna (lembrando que o índice começa do zero)


GOSTEI 0
POSTAR