PDA

Ver la Versión Completa : imagenes en StatusBar o Panel


VolaRe
30-08-2003, 20:06:06
Hola,

soy nuevo en esto y tengo mucha curiosidad de como se mete un icono o imagen en un statusbar o statuspanel.

Os agradeceria mucho vuestra respuesta, gracias.

:)

Ruben_Cu
31-08-2003, 05:57:29
Hola VolaRe, para insertar un icono o bitmap en una barra de estado debes primero adicionar un StatusPanel esto lo haces con botón derecho sobre el status panel y después seleccionas Panel Editor y adicionas uno a este panel adicionado en su inspector de objetos cambias la propiedad style a psOwnerDraw. En el evento OnDrawPanel colocas este código:

statusbar1.Canvas.Draw(10,4,image1.Picture.Bitmap);

Leete la ayuda sobre canvas y el procedure Draw, en breves palabras lo que haces es pasar la acción de dibujar sobre el objeto a tus manos con el cambio de Style a psOwnerDraw.
Utilizas el tcanvas del objeto para dibujar tu en el a partir de sus propiedades y métodos.
En este caso coloca el bmp a 10 pixel por el eje x y a 4 por el eje y considerado desde la esquina superior, después carga una imagen que en este caso esta en un timage pero pudiera ser desde un archivo o de un imagelist.
Espero te ayuden mis comentarios
Saludos

VolaRe
31-08-2003, 13:12:55
Hola Ruben, gracias por tu respuesta, la verdad qeu si que me ah ayudado, pero ahora me surgen las siguientes preguntas, ¿solo se puede meter un icono por cada statusbar?, los panels no tienen ningun evento, los eventos los haces desde el statusbar,¿entonces si quiero meter un icono por panel no puedo?.

Gracias por escucharme, y por tu respuesta anterior.

Ruben_Cu
31-08-2003, 18:32:29
Hola VolaRe, colocar una imagen en cada panel es posible puedes hacerlo utilizando el índice de cada panel como te muestro en el código siguiente:

procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
case panel.Index of
0: Statusbar1.Canvas.Draw(10,4,image1.Picture.Bitmap);
1: Statusbar1.Canvas.Draw(60,4,image2.Picture.Bitmap);
end;
end;

Para lograr una adecuada ubicación de las imagenes en función del tamaño del panel leete este hilo y entonces sustituyes los valores de x en la función Draw por los que he colocado a partir del segundo panel.
http://www.clubdelphi.com/foros/showthread.php?s=&threadid=2098&highlight=statusbar
Saludos

VolaRe
31-08-2003, 19:54:06
Ruben gracias por tu tiempo, me has ayudado gracias nuevamente

:):)