一般情況下,我們可以建立非模式對話方塊並在上面顯示進度條。如果能夠利用狀態條,在狀態條中動態地新增並顯示進度條,將會更加方便直觀。下面將講述如何在delphi 5中程式設計實現在狀態條中動態地新增進度條。具體的過程如下:
2.在窗體中新增乙個狀態列元件statusbar1,乙個button元件button1。在狀態列編輯器中為狀態列新增兩個顯示面板,因為後面將要在第二個面板中顯示進度條,所以將第二個面板的style屬性設定為psownerdraw。將button1元件的caption屬性設定為「演示操作」。
3.在unit1.pas檔案的tform1的型別定義中新增下面的變數定義:
......
private
progressbar:tprogressbar;// 進度條元件
progressbarrect:trect; // 進度條元件的尺寸
public
......
4.在狀態列的ondrawpanel事件的處理過程中,獲取將style屬性設定為psownerdraw的面板的尺寸。新增statusbar1元件的ondrawpanel事件的處理過程如下:
procedure tform1.statusbar1drawpanel(statusbar: tstatusbar;
panel: tstatuspanel; const rect: trect);
begin
// 進度條元件的尺寸設定為狀態條中的第二個顯示面板的尺寸,因為該面板的style屬性已被設定為
psownerdraw
progressbarrect:=rect;
end;
5.在按下按鈕button1元件時將執行乙個模擬計算過程的迴圈操作,同時動態地在statusbar1的第二個面板中建立並顯示progressbar元件,並將其父級設定為statusbar1元件。新增button1元件的onclick事件的處理過程如下:
procedure tform1.button1click(sender: tobject);
var// i為迴圈變數, stepcount為執行迴圈的總數目
i,stepcount : integer;
begin
//動態建立進度條元件progressbar
progressbar:=tprogressbar.create(form1);
stepcount:=10000; // 迴圈的總數目
with progressbar do
begin
// 先確定進度條元件的尺寸和位置
top:=progressbarrect.top;
left:=progressbarrect.left;
width:=progressbarrect.rig 璓rogressbarrect.left;
height:=progressbarrect.bottom-progressbarrect.top;
visible:=true; // 使進度條可見
try
parent:=statusbar1; // parent屬性設定為狀態列元件
min:=0;// 設定進度條的範圍和步長
max:=stepcount;
step:=1;
for i:=1 to stepcount do
begin
stepit;// 迴圈使進度顯示條累加
end;
messagedlg(′演示操作已經完成!′, mtinformation, [mbok], 0);
finally
free;// 最後釋放進度條元件占用的資源
end;
end;
end;
狀態列中新增進度條
將進度條新增到狀態列中不是很困難,只要幾步就可以了 1.建立乙個form工程,在窗體上新增乙個狀態列stat,新增乙個進度條progressbar1 2.為了演示進度情況,再新增乙個timer1 3.在stat的屬性中,將showpanels設為true 4.在stat的panels屬性中新增乙個s...
Delphi程式設計中在狀態列動態新增進度條
delphi程式設計中在狀態列動態新增進度條 一般情況下,我們可以建立非模式對話方塊並在上面顯示進度條。如果能夠利用狀態條,在狀態條中動態地新增並顯示進度條,將會更加方便直觀。下面將講述如何在delphi 5中程式設計實現在狀態條中動態地新增進度條。具體的過程如下 2 在窗體中新增乙個狀態列元件st...
vs2010 狀態列新增進度條
步驟 1 在cmainframe類中定義乙個變數 保護型別.cprogressctrl m progress 2 新增indicator指示器 id indicator prog 3 新增wm paint事件,新增 如下 void cmainframe onpaint else m progress...