Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   como ponerle una imagen a un boton (https://www.clubdelphi.com/foros/showthread.php?t=27568)

pyanqn 24-11-2005 13:41:35

como ponerle una imagen a un boton
 
Buenos dias...

Estoy probando ponerle una imagen o un icono a un boton, pero no encuentro alguna propiedad que me lo permita, image, icon...

Bueno se debe hacer de otra forma, o tal vez el nombre de la propiedad no es tan descriptivo. ó tengo que usar otro tipo de boton.

¿Qué hago?

Casimiro Notevi 24-11-2005 13:43:28

¿qué tipo de botón estás poniendo?

clanmilano 24-11-2005 13:58:11

Se me ocurren dos opciones:


1- Utiliza un bitbutton, este tipo de boton tiene la propiedad para agregarle imagen que se llama glyph.
2- En algun lugar del proyecto, yo particularmente lo coloco en un datamodule, cooloca un imagelist, componente que te permite al hacerle doble click agregarle una lista de imagenes con diferentes extensiones, y luego al boton comun le asignas una accion a la cual le asignas unas de estas imagenes.

La 2da opcion es muchisimo mas practica pero un poco larga de explicar, la primera mas facil.

Suerte...

pyanqn 24-11-2005 14:07:02

el boton es del mas comun, lo saco de la paleta estandar

jhonny 24-11-2005 15:06:06

Cita:

Empezado por pyanqn
el boton es del mas comun, lo saco de la paleta estandar

Pues ese es precisamente el "problema", lo mejor es que uses la opcion que te esta dando ya nuestro compañero clanmilano.

El TBitBtn Se encuentra en la paleta Additional

FGarcia 26-02-2008 22:13:37

Haciendo la busqueda encontre este hilo, estoy tratando de poner una imagen a un BitButton dependiendo de la seleccion hecha en un ListBox. Las imagenes (bmp) las estoy cargando desde un ImageList asi:

Código Delphi [-]
imagelist1.GetBitmap(4, bbtnComando.glyph);

sin embargo la imagen solo me aparece la mitad, ademas aunque la seleccion cambie no cambia la imagen se queda la primera asignada.

Alguien sabe que esta mal?

Gracias por el tiempo.

jachguate 26-02-2008 23:22:56

Te aparece siempre la misma porque en el primer parámetro de la llamada a GetBitmap envías la constante 4. Sustituila por la selección del usuario.

Sobre el que solo te aparece la mitad, quizás la imagen contiene solo un Glyph, pero la propiedad NumGlyphs, según recuerdo, se inicializa a 2. Si es ese el caso, cambiala a 1.

Hasta luego.

;)

FGarcia 27-02-2008 00:34:22

Ok jachguate ya resolvi lo de la imagen, efectivamente yo lo tenia a 2, lo coloque en 1 y ya se ve la imagen pero aun no consigo que esta cambie de acuerdo a la seleccion hecha. de hecho estoy haciendo esto:

Código Delphi [-]
{CUANDO SE HACE CLICK EN ALGUN ELEMENTO DE LA LISTA }
procedure TForm1.ListBox1Click(Sender: TObject);
begin
  //HABILITAMOS EL BOTON DE COMANDOS
  bbtnComando.Enabled := True;
  //LE PONEMOS EL TITULO DE LA SELECCION
  case ListBox1.ItemIndex  of
    0:  begin
          imagelist1.GetBitmap(4, bbtnComando.glyph);
          bbtnComando.Caption := ListBox1.Items[ListBox1.ItemIndex];
        end;
    1:  begin
          imagelist1.GetBitmap(2, bbtnComando.glyph);
          bbtnComando.Caption := ListBox1.Items[ListBox1.ItemIndex];
        end;
    2:  begin
          imagelist1.GetBitmap(10, bbtnComando.glyph);
          bbtnComando.Caption := ListBox1.Items[ListBox1.ItemIndex];
        end;
    3:  begin
          imagelist1.GetBitmap(4, bbtnComando.glyph);
          bbtnComando.Caption := ListBox1.Items[ListBox1.ItemIndex];
        end;
    4:  begin
          imagelist1.GetBitmap(2, bbtnComando.glyph);
          bbtnComando.Caption := ListBox1.Items[ListBox1.ItemIndex];
        end;
    5:  begin
          imagelist1.GetBitmap(10, bbtnComando.glyph);
          bbtnComando.Caption := ListBox1.Items[ListBox1.ItemIndex];
        end;
    6:  begin
          imagelist1.GetBitmap(0, bbtnComando.glyph);
          bbtnComando.Caption := ListBox1.Items[ListBox1.ItemIndex];
        end;
    7:  begin
          imagelist1.GetBitmap(6, bbtnComando.glyph);
          bbtnComando.Caption := ListBox1.Items[ListBox1.ItemIndex];
        end;
  end;
end;

segun lei la declaracion de ImageList.GetBitmap es:

Código Delphi [-]
ImageList.GetBitmap(Index:integer;Image:bitmaP);

en este caso entiendo que index se refiere al indice de la imagen en el imagelist.

Nuevamente gracias

jachguate 27-02-2008 00:47:07

bueno... yo eso lo haría algo así:

Código Delphi [-]
var
  bmp: TBitmap;
  Indice: Integer;
begin
  case ListBox1.ItemIndex  of
    0:  Indice := 4;
    1:  Indice := 2;
    2:  Indice := 10;
    3:  Indice := 4;
    4:  Indice := 2;
    5:  Indice := 10;
    6:  Indice := 0;
    7:  Indice := 6;
    else Indice := 0;
  end;
  bmp := TBitmap.Create;
  try
    if ImageList1.GetBitmap(Indice, bmp) then
    begin
      bbtnComando.Glyph := bmp;
      bbtnComando.Caption := ListBox1.Items[ListBox1.ItemIndex];
    end
    else
    begin
      bbtnComando.Glyph := nil;
      bbtnComando.Caption := 'Error interno!';
    end;
  finally
    bmp.Free;
  end;

Hasta luego.

;)

FGarcia 27-02-2008 01:07:49

GRRRAAAANNNNDEE Maestro!!!

¡¡¡Cuando sea grande quiero ser como usted!!!

Asunto resuelto!!

marcial 26-04-2012 17:52:05

Se me ocurren dos opciones:


1- Utiliza un bitbutton, este tipo de boton tiene la propiedad para agregarle imagen que se llama glyph.
2- En algun lugar del proyecto, yo particularmente lo coloco en un datamodule, cooloca un imagelist, componente que te permite al hacerle doble click agregarle una lista de imagenes con diferentes extensiones,
Cita:

y luego al boton comun le asignas una accion a la cual le asignas unas de estas imagenes.
La 2da opcion es muchisimo mas practica pero un poco larga de explicar, la primera mas facil.

Suerte

Por favor, podrías explicarme un poco cómo "asisnas una de estas imagenes a la acción que has asignado " para que el TButton contenta una imagen??
Gracias


La franja horaria es GMT +2. Ahora son las 20:41:53.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi