在狀態列中插入類似進度條的可視控制元件
首先,在Form中放置一個狀態條控制元件Status。調節Status.Panels,在其中插入3個狀態條嵌板。第二個嵌板的引數Style設定成psOwnerDraw。這一點很重要,如果沒有這樣做,將永遠無法顯示文字以外的東西。在Form1的Private部分宣告一個TRect型別的變數:StatusDrawRect:TRect;然後在狀態條的OnDrawPanel事件中插入一行:StatusDrawRect:=rect;以記錄引數Style設定成psOwnerDraw的嵌板的座標。
第二步,在Form的Private中宣告一個TProgressbar型別的成員變數Progress。然後在一個選單的訊息響應過程中呼叫Create方法把它建立起來,再設定狀態條為該進度條的父視窗,進而設定進度條的一些必要引數,例如:最大值、最小值、原點座標、高度和寬度等。
程式清單:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, Menus;type
TForm1 = class(TForm)
Status: TStatusBar;
MainMenu1: TMainMenu;
N1: TMenuItem;
Create: TMenuItem;
Exit: TMenuItem;
procedure StatusDrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel;
const Rect: TRect);
procedure ExitClick(Sender: TObject);
procedure CreateClick(Sender: TObject);
private
StatusDrawRect:TRect;//記錄要插入狀態條特技的座標範圍
Progress:TProgressbar;
public
{ Public declarations }
end;var
Form1: TForm1;implementation
{$R *.dfm}
procedure TForm1.StatusDrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
StatusDrawRect:=rect;//記錄要插入狀態條特技的座標範圍
end;procedure TForm1.ExitClick(Sender: TObject);
begin
Form1.Close;
end;procedure TForm1.CreateClick(Sender: TObject);
var
i,count:integer;
staPanleWidth:Integer;
begin
progress:=TProgressbar.Create(form1);
count:=3000;//進度條的最大值
staPanleWidth:=status.Panels.Items[1].Width;
//由於進度條很寬,所以需要改變狀態條嵌板的寬度,這裡先儲存它的寬度。
status.Panels.Items[1].Width:=150;//改變寬度
status.Repaint;
with progress do
begin
top:=StatusDrawRect.Top;
left:=StatusDrawRect.Left;
width:=StatusDrawRect.Right-StatusDrawRect.Left;
height:=StatusDrawRect.Bottom-StatusDrawRect.Top;
//設定進度條的寬度和高度
visible:=true;
try
Parent:=status;//該進度條的擁有者為狀態條status
Min:=0;Max:=Count;//進度條的最大值和最小值
Step:=1;//設定進度條的步長
for i:=1 to Count do StepIt;
ShowMessage('現在,程式條將要從記憶體中被釋放');
finally
Free;//釋放進度條
end;//try
end;//with
Status.Panels.Items[1].Width:=staPanleWidth;//恢復狀態條嵌板的寬度
end;//beginend.
類似的還可插入其他可視控制元件,如按鈕、點陣圖和動畫控制元件等等。
相關文章
- MFC在狀態列中使用進度條控制元件控制元件
- 短視訊平臺開發,畫面靜置時隱藏狀態列、導航欄、進度條
- iOS 雙波浪動畫 – 類似淘寶個人資訊狀態列,京東金融等iOS動畫
- 在BCB中陣列的妙用和紀錄和改變控制元件的狀態 (轉)陣列控制元件
- 轉:在ABAP中實現進度條的例子
- flutter seekbar 可拖拽可點選的進度條Flutter
- 命令列進度條實現命令列
- [譯] 5 分鐘讓 Drawer 在狀態列下可見
- Android中實現類似iOS的SwitchButton控制元件AndroidiOS控制元件
- 【新特性速遞】進度條,進度條,進度條
- Android UI控制元件系列:ProgressBar(進度條)AndroidUI控制元件
- React Native 中的狀態列React Native
- c#之statusstrip狀態列控制元件(1)C#控制元件
- 進度條和列表形式顯示的控制元件控制元件
- Python 輸出命令列進度條Python命令列
- 在INDEX 處於UNABLE 狀態下插入資料Index
- JavaScript 動態進度條效果詳解JavaScript
- Android 自定義 View:包含多種狀態的下載用圓形進度條AndroidView
- 在命令列上輸出進度條的原理命令列
- 在狀態列中加入BitMap (轉)
- 直播系統開發,實現在進度條中顯示文字顯示進度
- android判斷狀態列是否可見Android
- 檢視RMAN備份進度的兩條SQLSQL
- 在鴻蒙中實現類似瀑布流效果鴻蒙
- 在Asp.Net中實現類似DWR的功能ASP.NET
- 【dinghao】asp.net控制元件開發(一)簡單屬性、檢視狀態、控制元件狀態ASP.NET控制元件
- jQuery動態進度條程式碼例項jQuery
- js實現動態進度條詳解JS
- canvas實現具有粒子效果的動態進度條Canvas
- [Rpackage]R語言plyr包使用方法——可進行類似資料透視表的操作PackageR語言
- ajax進度條 非同步下載進度條非同步
- Java中的巢狀類、內部類、靜態內部類Java巢狀
- 用控制元件工具在WPS表格中插入Flash控制元件
- 字串的一個操作(替換類似陣列字串中的項)字串陣列
- geoserver控制服務訪問許可權-類似百度地圖的keyServer訪問許可權地圖
- css實現螺紋動態進度條效果CSS
- JavaScript百分比動態進度條JavaScript
- Qt 進度條QT