PDA

Ver la Versión Completa : ProgressBar en StatusBar


ioco
14-04-2010, 16:00:06
Hola, estaba chafardeando un ejemplo de delphiabout (http://delphi.about.com/library/weekly/aa030805a.htm) que mencionan en otro post de esta misma sección y no entiendo porqué me da el resultado que me da... las instrucciones son bastantes sencillas y encima dan el código ya hecho y todo, pero no encuentro qué puede fallar :confused:

Les subo el código tal cual lo puse (copy-paste de la web misma, añadiendo la unit de windows al uses ya que no estaba por defecto):

procedure TForm1.FormCreate(Sender: TObject);
var
ProgressBarStyle: integer;
begin
//enable status bar 2nd Panel custom drawing
StatusBar1.Panels[1].Style := psOwnerDraw;

//place the progress bar into the status bar
ProgressBar1.Parent := StatusBar1;

//remove progress bar border
ProgressBarStyle := GetWindowLong(ProgressBar1.Handle,
GWL_EXSTYLE);
ProgressBarStyle := ProgressBarStyle
- WS_EX_STATICEDGE;
SetWindowLong(ProgressBar1.Handle,
GWL_EXSTYLE,
ProgressBarStyle);
end;

procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
if Panel = StatusBar.Panels[1] then
with ProgressBar1 do begin
Top := Rect.Top;
Left := Rect.Left;
Width := Rect.Right - Rect.Left - 15;
Height := Rect.Bottom - Rect.Top;
end;
end;

y el resultado mostrando el form en edición (izquierda) y en ejecución (derecha):

http://img707.imageshack.us/img707/710/progstatus.jpg

Se supone que con eso basta para mostrar la progressbar en el segundo panel de la statusbar, ¿no?

Gracias de antemano como siempre por su tiempo :)

Neftali [Germán.Estévez]
14-04-2010, 17:05:36
¿Qué estás utilizando?
Yo con XP y Delphi6 lo he probado y funciona perfectamente.

http://img442.imageshack.us/img442/7062/imagen9n.png

ioco
14-04-2010, 22:51:18
Uso Lazarus v0.9.28.2 en Windows XP

ioco
19-04-2010, 14:27:42
Hoy probé en el aula de informática de la facultad a compilarlo en delphi 7 y también funciona.

Parece claro que el problema está en Lazarus, tocará ir alternando... :rolleyes: