1】拖動一個StatusBar1到窗口上,並添加三個StatusPanel,我們將ID為2的StatusPanel作為進度條顯示;
2】聲名全局變量
private { Private declarations } //聲明一個進度條對象 MyProg:TProgressbar;//要在界面上放一個TProgressbar,否則會提示找不到單元
//聲明進度條要插入顯示的區域 MyRect2:TRect;
3】FormShow事件里創建進度條TProgressbar對象
procedure TForm6.FormShow(Sender: TObject); begin //創建TProgressbar對象 MyProg:=TProgressbar.Create(Application); //父類為狀態欄 MyProg.Parent:=StatusBar1; end;
4】設置顯示 范圍
procedure TForm6.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect); begin if Panel.ID =2 then MyRect2:=Rect; end;
5】設置為自畫模式
6】進度條 改變 並顯示
procedure TForm6.Button1Click(Sender: TObject); begin //設定進度條狀態 with MyProg do begin //設置長度、寬度和高度 left:=MyRect2.Left; top:=MyRect2.Top; width:=MyRect2.Right-MyRect2.Left; height:=MyRect2.Bottom-MyRect2.Top; //設置進度條的值 Min:=0; Max:=100; Position:=Position+10; //進度條可見 Visible:=True; end; end;
7】窗口大小變了,進度條長度也隨之改變
procedure TForm6.FormResize(Sender: TObject); //窗口大小變了,進度條長度也隨之改變 begin with MyProg do begin //設置長度、寬度和高度 left:=MyRect2.Left; top:=MyRect2.Top; width:=MyRect2.Right-MyRect2.Left; height:=MyRect2.Bottom-MyRect2.Top; end; end;
類似地,在狀態欄里顯示圖片
private { Private declarations } Image1:TImage;//聲明一個圖片對象 MyRect0:TRect;//聲明圖片要插入的范圍 procedure TForm6.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect); begin if Panel.ID =1 then MyRect0:=Rect;//在狀態欄ID=1顯示圖片 end; procedure TForm3.Button2Click(Sender: TObject); begin//顯示圖片1 with Image1 do begin Parent:=StatusBar1; // Picture.LoadFromFile('OK.jpg'); left:=MyRect0.Left; Top:=MyRect0.Top; Width:=MyRect0.Right-MyRect0.Left; Height:=MyRect0.Bottom-MyRect0.Top; Visible:=True; BringToFront; end; end; procedure TForm3.Button3Click(Sender: TObject); begin//顯示圖片2 with Image2 do begin Parent:=StatusBar1; // Picture.LoadFromFile('OK.jpg'); left:=MyRect0.Left; Top:=MyRect0.Top; Width:=MyRect0.Right-MyRect0.Left; Height:=MyRect0.Bottom-MyRect0.Top; Visible:=True; BringToFront; end; end;

