Obtener área de un StatusPanel
Publicado por Fer (117 intervenciones) el 29/08/2001 14:27:55
Quisiera saber cómo puedo obtener el rectángulo (TRect) de un StatusPanel perteneciente a una StatusBar.
Quiero crear dinámicamente una barra de progreso en uno de los paneles de la barra de estado y el efecto que consigo no es el deseado (la barra de progreso no da la impresión de estar dentro del panel).
Ejemplo de código:
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
vBarra: TProgressBar;
begin
vBarra := TProgressBar.Create(Self);
vBarra.Min := 0;
vBarra.Max := 100000;
vBarra.Step := 1;
vBarra.Position := 0;
vBarra.parent := Statusbar1;
vBarra.Top := 0;
vBarra.Left := StatusBar1.Panels[0].Width;
vBarra.width := StatusBar1.Panels[1].Width;
vBarra.Height := StatusBar1.Height;
StatusBar1.Update;
for i:=0 to 100000 do begin
vb.StepIt;
end;
vBarra.Free;
end;
Con este código, la barra de progreso no aparece correctamente alineada con los otros paneles de la barra de estado.
Quiero crear dinámicamente una barra de progreso en uno de los paneles de la barra de estado y el efecto que consigo no es el deseado (la barra de progreso no da la impresión de estar dentro del panel).
Ejemplo de código:
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
vBarra: TProgressBar;
begin
vBarra := TProgressBar.Create(Self);
vBarra.Min := 0;
vBarra.Max := 100000;
vBarra.Step := 1;
vBarra.Position := 0;
vBarra.parent := Statusbar1;
vBarra.Top := 0;
vBarra.Left := StatusBar1.Panels[0].Width;
vBarra.width := StatusBar1.Panels[1].Width;
vBarra.Height := StatusBar1.Height;
StatusBar1.Update;
for i:=0 to 100000 do begin
vb.StepIt;
end;
vBarra.Free;
end;
Con este código, la barra de progreso no aparece correctamente alineada con los otros paneles de la barra de estado.
Valora esta pregunta


0