Exibindo imagens de um ImageList
salve delphianos!
Alguem sabe se tem a possibilidade de exibir todas as imagens contidas em um TImageList em algum outro componente?
ex: tenho um campo de uma determinada tabela chamada ´CODIGO_IMAGEM - INTEGER´. quero exibir (visualmente e em runtime) todas as imagens que tenho no meu ImageList em algum lugar para poder pegar o codigo Index dessa imagem do ImageList e salva-lo no referido campo da tabela...
abraços!!!
Alguem sabe se tem a possibilidade de exibir todas as imagens contidas em um TImageList em algum outro componente?
ex: tenho um campo de uma determinada tabela chamada ´CODIGO_IMAGEM - INTEGER´. quero exibir (visualmente e em runtime) todas as imagens que tenho no meu ImageList em algum lugar para poder pegar o codigo Index dessa imagem do ImageList e salva-lo no referido campo da tabela...
abraços!!!
Mahdak
Curtidas 0
Respostas
Siam
27/09/2006
Vc pode utilizar a função GetBitmap do TImageList.
GOSTEI 0
Aloizio Castro
27/09/2006
Eu uso este código aqui.
Este código é de minha autoria, veja se te serve. Eu a uso da seguinte maneira:
Abraços
function GetIndexFromImageList(ImgLst : TImageList; nCol, nRow: Word): Integer; var Frm : TForm; SpdBtn : TBitBtn; nL, nC : Word; nIdx : Word; begin Frm := TForm.Create(Nil); with Frm do begin Width := ImgLst.Width * nCol + 04; Height := ImgLst.Height * nRow + 04; BorderStyle := bsNone; Left := Mouse.CursorPos.X; Top := Mouse.CursorPos.Y; AutoSize := True; end; nIdx := 0; for nL := 1 to nRow do begin for nC := 1 to nCol do begin SpdBtn := TBitBtn.Create(Frm); with SpdBtn do begin Parent := Frm; Kind := bkClose; Glyph := nil; Caption := ´´; NumGlyphs := 1; SetBounds(nC * (ImgLst.Width +6) - (ImgLst.Width +6) + 1, nL * (ImgLst.Height+6) - (ImgLst.Height+6) + 1, ImgLst.Width + 6, ImgLst.Height + 6); ImgLst.GetBitmap(nIdx,SpdBtn.Glyph); Tag := nIdx; Inc(nIdx); end; end; end; try Frm.ShowModal; finally Result := Frm.ActiveControl.Tag; FreeAndNil(Frm); end; end;
Este código é de minha autoria, veja se te serve. Eu a uso da seguinte maneira:
procedure TForm1.BitBtn1Click(Sender: TObject); begin BitBtn1.Glyph := nil; ImageList1.GetBitmap(GetIndexFromImageList(ImageList1,9,9),BitBtn1.Glyph); end;
Abraços
GOSTEI 0
Mahdak
27/09/2006
siam, muito obrigado pela dica....
Anderson, Muito obrigado pelo exemplo, ele caiu como uma luva para o que eu preciso, qualquer coisa a respeito da sua função volto a entrar em contato atravez do tópico...
abraços!
Anderson, Muito obrigado pelo exemplo, ele caiu como uma luva para o que eu preciso, qualquer coisa a respeito da sua função volto a entrar em contato atravez do tópico...
abraços!
GOSTEI 0
Mahdak
27/09/2006
só uma perguntinha... e se eu quisesse pegar o numero(index) da imagem que eu selecionei e jogar na propriedade caption do ´BitBtn1´, como seria?
abraços!
procedure TPrincipal.BitBtn1Click(Sender: TObject); begin BitBtn1.Glyph := nil; Imagens_botoes.GetBitmap(GetIndexFromImageList(Imagelis1,9,9),BitBtn1.Glyph); end;
abraços!
GOSTEI 0
Aloizio Castro
27/09/2006
procedure TPrincipal.BitBtn1Click(Sender: TObject); var nIndex : Integer; begin nIndex := GetIndexFromImageList(Imagens_botoes,9,9); BitBtn1.Glyph := nil; Imagens_botoes.GetBitmap(nIndex,BitBtn1.Glyph); BitBtn1.Caption := IntToStr(nIndex); end;
GOSTEI 0