Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   imagenes en StatusBar o Panel (https://www.clubdelphi.com/foros/showthread.php?t=3275)

VolaRe 30-08-2003 19:06:06

imagenes en StatusBar o Panel
 
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 04: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:
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 12: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 17: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:
Código:

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/show...ight=statusbar
Saludos

VolaRe 31-08-2003 18:54:06

Ruben gracias por tu tiempo, me has ayudado gracias nuevamente

:):)


La franja horaria es GMT +2. Ahora son las 22:43:06.

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