Delphi - Problemas con Paneles de StatusBar

 
Vista:

Problemas con Paneles de StatusBar

Publicado por Gelmin Martínez (58 intervenciones) el 03/08/2003 01:27:55
En la página "Delphi3000.com" encontré el código para colocar Imagen o ícono en la barra de estado la cual se hace en el evento "onDrawPanel"
procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
with StatusBar1.Canvas do
begin
Brush.Color := clBtnFace;
FillRect(Rect);
Font.Color := clblue;
Imagelist1.Draw(StatusBar1.Canvas,Rect.Left,Rect.Top,0);
TextOut(Rect.left + 20, Rect.top + 2,'Gelmin');
End;
El problema es que no puedo especificar en que panel de mi barra es que quiero que aparesca la imágen, porque con este código si tengo 3 paneles con su propiedad Style=psOwnerDraw; pues la imágen y el texto que especifico en el código anterior aparece en los 3 paneles de la barra; Talvés haya alguna forma de especificar la imágen y el texto que quiero que aparesca en cada panel...!
Saludos...!
Gelmin [Nicaragua]...!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas con Paneles de StatusBar

Publicado por Diego Romero (636 intervenciones) el 03/08/2003 07:35:26
Amigo, en los parámetros del evento tienes uno que se llama Panel de tipo TStatusPanel, no tienes más que preguntar por la propiedad Index de Panel para "filtrar" en qué panel del StatusBar quieres que se coloque la imágen o icono.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

[Error]: Undeclared identifier:'Canvas'

Publicado por Gelmin Martínez (1 intervención) el 05/08/2003 19:45:34
Hey amigos intenté hacerlo de la siguiente manera
Imagelist1.Draw(StatusBar1.panels[0].canvas,Rect.Left,Rect.Top,1);
pero me lanza el error: [Error] UStatusBar.pas(40): Undeclared identifier: 'canvas'. Dijeron algo sobre la propiedad "index" del parámetro "panel".Pero no hayé como utilizarlo en ese código, intenté varias formas pero no funcionó...! gracias por los comentarios ok
Gelmin Martínez (Nicaragua).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:[Error]: Undeclared identifier:'Canvas'

Publicado por Diego Romero (636 intervenciones) el 06/08/2003 00:09:10
Supongamos que quieres hacer algo en el segundo panel
procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
if Panel.Index = 1 then
begin
with StatusBar1.Canvas do
begin
Brush.Color := clBtnFace;
FillRect(Rect);
Font.Color := clblue;
Imagelist1.Draw(StatusBar1.Canvas,Rect.Left,Rect.Top,0);
TextOut(Rect.left + 20, Rect.top + 2,'Gelmin');
end; { with }
end; { if }
End; { evento }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias programador, ya lo tengo...!

Publicado por Gelmin Martínez (58 intervenciones) el 06/08/2003 19:47:07
Gracias Diego por la ayuda, ahora si ya logré lo que quería.
Con el Panel.index selecciono en que panel quiero la imágen, y puedo cargar diferentes imágenes en diferentes paneles, ya lo comprobé en Delphi 5 ok.
Gelmin (Nicaragua).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con Paneles de StatusBar

Publicado por Delfino (1216 intervenciones) el 03/08/2003 13:41:30
Has probado el StatusBar1.Panels[0].Canvas etc...???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar