鐘舵佹潯鎻掑叆鍙鎺т欢
鍙戝竷: 2008-6-26 20:33 | 浣滆: admin | 鏌ョ湅: 7娆
width="84%">鐘舵佹潯鎻掑叆鍙鎺т欢
銆銆棣栧厛,鍦‵ROM涓斁缃竴涓姸鎬佹潯鎺т欢Status銆傝皟鑺係tatus.Panels锛屽湪鍏朵腑鎻掑叆3涓姸鎬佹潯宓屾澘銆傛妸绗簩涓祵鏉跨殑鍙傛暟Style璁剧疆鎴恜sOwnerDraw銆傝繖涓鐐瑰緢閲嶈锛屽鏋滄病鏈夎繖鏍峰仛锛屽皢姘歌繙鏃犳硶鏄剧ず鏂囧瓧浠ュ鐨勪笢瑗裤傜劧鍚庡湪鐘舵佹潯鐨凮nDrawPanel浜嬩欢涓彃鍏ヤ竴琛孲tatusDrawRect:=rect;浠ヨ褰曞弬鏁癝tyle璁剧疆鎴恜sOwnerDraw鐨勫祵鏉跨殑鍧愭爣銆
銆銆绗簩姝ワ紝鍦‵ROM鐨凱rivate涓敵鏄庝竴涓猅ProgressBar绫诲瀷鐨勫彉閲廝rogress銆傜劧鍚庡湪涓涓彍鍗曠殑娑堟伅鍝嶅簲杩囩▼涓皟鐢–reate鏂规硶鎶婂畠寤虹珛璧锋潵锛屽啀璁惧畾鐘舵佹潯涓鸿杩涚▼鏉$殑鐖剁獥鍙o紝杩涜岃瀹氳繘绋嬫潯鐨勪竴浜涘繀瑕佸弬鏁般備緥濡傦細鏈澶у笺佹渶灏忓笺佸師鐐瑰潗鏍囥侀珮搴﹀拰瀹藉害绛夈
銆銆鏈鍚庣紪璇戜竴涓嬭绋嬪簭锛屼綘灏变細鍙戠幇鍦ㄧ姸鎬佹潯涓鎻掑叆浜嗕竴涓繍鍔ㄧ潃鐨勮繘绋嬫潯銆
銆銆绫讳技鍦帮紝浣犺繕鍙互鍦ㄧ姸鎬佹潯涓彃鍏ュ叾浠栧彲瑙嗘帶浠讹紝濡傦細鎸夐敭銆佷綅鍥惧拰鍔ㄧ敾鎺т欢绛夌瓑銆
浠ヤ笅鏄寖渚嬬▼搴忥細
type
TForm1 = class(TForm)//瀹氫箟涓涓獥鍙g被
Status: TStatusBar;
MainMenu1: TMainMenu;
file1: TMenuItem;
insertprocressbar1: TMenuItem;
N1: TMenuItem;
exit1: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure StatusDrawPanel(StatusBar: TStatusBar; Panel:
TStatusPanel;const Rect: TRect);
procedure FormDestroy(Sender: TObject);
procedure exit1Click(Sender: TObject);
procedure insertprocressbar1Click(Sender: TObject);
private
colorindex : integer; BookOpen:Boolean;
ssbmp:Tbitmap; progress:TProgressbar;
StatusDrawRect:TRect; //璁板綍瑕佹彃鍏ョ姸鎬佹潯鐗规妧鐨勫潗鏍囪寖鍥
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
procedure TForm1.StatusDrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
StatusDrawRect:=rect; //璁板綍瑕佸疄鐜扮姸鎬佹潯鐗规妧鐨勫潗鏍囪寖鍥
end;
procedure TForm1.exit1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.insertprocressbar1Click(Sender: TObject);
var i,count:integer;
staPanleWidth:integer;
begin
progress:=TProgressbar.create(form1);
count:=3000; //杩涚▼鏉$殑鏈澶у
staPanleWidth:=status.Panels.Items .width;
//鐢变簬杩涚▼鏉$殑寰堝锛屾墍浠ラ渶瑕佹敼鍙樼姸鎬佹潯宓屾澘鐨勫搴︼紝杩欓噷鍏堜繚瀛樺畠鐨勫搴︺
status.Panels.Items .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 .width:=staPanleWidth; //鎭㈠鐘舵佹潯宓屾澘鐨勫搴
end; //begin
end.




发表于 2009-1-5 19:48
| 











