PDA

Ver la Versión Completa : como ponerle una imagen a un boton


pyanqn
24-11-2005, 13:41:35
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
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:

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:

{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:

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í:


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,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