pack mal deinen code ins OnDrawPanel Event
Delphi-Quellcode:
procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel;
const Rect: TRect);
var
R, RBar : TRect;
Position: Integer;
Text: String;
begin
Position := 33;
Text := '333kb/1000kb @ 33,12kb/s';
{ Statusbar1.Perform(SB_GETRECT, 0, Integer(@R)); } //braucht man nicht mehr da das event uns schon mit dem RECT versorgt
//progress bar
R := Rect;
RBar := R;
//fit into panel
RBar.Left := RBar.Left + 1;
RBar.Top := RBar.Top + 1;
RBar.Right := RBar.Right - 2;
RBar.Bottom := RBar.Bottom - 2;
RBar.Right := RBar.Left + Ceil( (Position / 100) * (RBar.Right - RBar.Left) );
Statusbar1.Canvas.Brush.Color := clSkyBlue;
Statusbar1.Canvas.FillRect(RBar);
//progress text
SetBkMode(Statusbar1.Canvas.Handle, TRANSPARENT);
DrawText(Statusbar1.Canvas.Handle,
PCHAR(Text),
Length(Text),
R,
DT_SINGLELINE or DT_END_ELLIPSIS or DT_CENTER);
end;
und dann beim Panel ( dort wo du z.b. den Text der angezeigt werden soll reinschreibst ) die property Style auf 'psOwnerDraw'