ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

[Dica] Listar glyphs do ImageList para usuário

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Off-Topic
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
an.der.son
Colaborador
Colaborador


Registrado: Quarta-Feira, 26 de Mai de 2004
Mensagens: 2275
Localização: Itaocara - RJ

MensagemEnviada: Qua Mai 09, 2007 9:18 am    Assunto: [Dica] Listar glyphs do ImageList para usuário Responder com Citação

Código:

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:

Código:

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  BitBtn1.Glyph := nil;
  ImageList1.GetBitmap(GetIndexFromImageList(ImageList1,9,9),BitBtn1.Glyph);
end;


Espero que sirva para alguem um dia Wink
_________________
Estou de volta!!!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário Yahoo Messenger MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Off-Topic Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB