Fórum Colocar uma imagem dentro de uma coluna no dbgrid #273474
21/03/2005
0
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
Desde já Grato
Leonardobhbr
Curtir tópico
+ 0
Responder
Posts
22/03/2005
Raserafim
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)
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)
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)