如何在Statusbar中顯示Progressbar和Icon? |
尚未結案
|
mathewzhao
中階會員 發表:121 回覆:164 積分:67 註冊:2003-04-04 發送簡訊給我 |
各位先進好!
我想在程式的Statusbar秀出與Winzip類似的風格,可以顯示Progressbar和Icon
Q1:
如果
statusbar1.panel[0] 顯示 Progressbar
Statusbar1.panel[1] 顯示 Icon
style皆設為:PsOwnerDraw
如何得到statusbar1.panel[0]和Statusbar1.panel[1]的大小? Q2:
sentence1,2 的作用是什麼? Code 如下:
...
imageFlag:Timage;
progressDrawRect:TRect;
...
progress:=TprogressBar.create(Form4);
imageFlag:=Timage.create(Form4);
panelWidth:=Statusbar1.panels.items[1].width; //sentence1 WITH imageFlag do
begin
Top:=ImageDrawRect.top;
Left:=ImageDrawRect.Left;
width:=ImageDrawRect.Right-ImageDrawRect.Left;
Height:=ImageDrawRect.Bottom-ImageDrawRect.Top;
visible:=true;
parent:=statusbar1;
imageFlag.Picture.Bitmap.Handle:=loadbitmap(hinstance,'mainicon');
end; with progress do
begin
Top:=progressDrawRect.top;
Left:=progressDrawRect.Left;
width:=progressDrawRect.Right-progressDrawRect.Left;
Height:=progressDrawRect.Bottom-progressDrawRect.Top;
visible:=true;
try
parent:=statusbar1;
min:=0;
Max:=count;
step:=1;
finally
free;
end;
statusbar1.panels[1].width:=panelwidth; //sentence2
end;
.....
procedure TForm4.StatusBar1DrawPanel(StatusBar:TStatusBar;Panel: TStatusPanel;const Rect: TRect);
begin
// 如何在此得到statusbar1.panel[0]和Statusbar1.panel[1]的大小?
// 如果在此設置progressDrawRect:=Rect;可以顯示Progressbar
end;
|
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
引言: // 如何在此得到statusbar1.panel[0]和Statusbar1.panel[1]的大小? // 如果在此設置progressDrawRect:=Rect;可以顯示Progressbarmathewzhao 您好! 試試看可不可行! procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect); begin {動態建立ProgressBar1省略} if Panel.Index = 0 then begin ProgressBar1.Width := Rect.Right - Rect.Left 1; ProgressBar1.Height := Rect.Bottom - Rect.Top 1; ProgressBar1.PaintTo(StatusBar.Canvas.Handle, Rect.Left, Rect.Top); end; end; procedure TForm1.Button1Click(Sender: TObject); var I: integer; begin for I := ProgressBar1.Min to ProgressBar1.Max do begin ProgressBar1.Position := I; StatusBar1.Repaint; Sleep(50); end; Sleep(500); ProgressBar1.Position := ProgressBar1.Min; StatusBar1.Repaint; end;HAVE A NICE DAY FOR YOU 發表人 - axsoft 於 2003/06/27 13:14:15 |
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
1.ProgessBar放入StatusBar上
http://forum.vclxx.org/topic.php?TOPIC_ID=4312&FORUM_ID=3&CAT_ID=2&Topic_Title=%A6p%A6%F3%B1NProgressBar%A5%5B%A4J%A6b%AA%AC%BAA%A6C&Forum_Title=Misc
2.插入小圖案
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=24981 第一個答案你只須將TProgressBar對其你的Panel即可.
Good Luck 我不是高手, 高手是正在銀幕前微笑的人.
------
我不是高手, 高手是正在銀幕前微笑的人. |
qoo1234
版主 發表:256 回覆:1167 積分:659 註冊:2003-02-24 發送簡訊給我 |
在StatusBar中,加入圖示與改變文字顏色
http://www.delphipages.com/tips/thread.cfm?ID=165 用StatusBar1來顯示ProgressBar! 方法: 把ProgressBar放在一個Panel上,在FormCreate中寫
Panel.Parent := StatusBar1,可能還要調整一下位置。 先在視窗上放一個Panel, 1.然後雙擊Statusbar1,新增Statusbar1.Panels[0],
將其Style改為psOwnerDraw 2.然後在FormCreate中寫
Panel1.Parent := StatusBar1;
Panel1.Left := StatusBar1.left;
Panel1.Top := 0; //若位置太高,可以設定此項,我都設 2 3.你在Panel1上什麼都可以放,包括Progressbar,button等等。 網海無涯,學無止境!
|
SamSam1230
中階會員 發表:128 回覆:178 積分:65 註冊:2004-12-23 發送簡訊給我 |
引言: 1.ProgessBar放入StatusBar上 http://forum.vclxx.org/topic.php?TOPIC_ID=4312&FORUM_ID=3&CAT_ID=2&Topic_Title=%A6p%A6%F3%B1NProgressBar%A5%5B%A4J%A6b%AA%AC%BAA%A6C&Forum_Title=Misc 2.插入小圖案 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=24981 第一個答案你只須將TProgressBar對其你的Panel即可. Good Luck 請問大大 Progress := Progress.Create(Statusbar1); 這樣只可以把progressbar 放statusbar panel 0 , 如果要放到 panel 1 或者以上 , 要怎樣呢? Progress := Progress.Create(Statusbar1.Panels[0]); 這樣是不可以的 請問要怎樣? 我不是高手, 高手是正在銀幕前微笑的人. |
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
Hi SamSam1230 你好:
procedure TForm1.FormCreate(Sender: TObject); begin Progress:= TProgressBar.Create(Statusbar1); Progress.Parent:=Statusbar1; Progress.Left:=Statusbar1.Panels.Items[0].Width; Progress.Top:=3; Progress.Height:=Statusbar1.Height-4; Progress.Width:= 100; Progress.Smooth:=true; Progress.Position:=50; end;我不是高手, 高手是正在銀幕前微笑的人.
------
我不是高手, 高手是正在銀幕前微笑的人. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |