如果把别的组件放入状态栏中 我想把一个显示进度的组件(ProgressBar)放入状态栏中,并且在需要时让ProgressBar可见,平时不可见。可有办法,最好把码贴出来。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 varprogressbar2:tprogressbar;........ progressbar2:=tprogressbar.Create(self); progressbar2.Parent:=statusbar1; progressbar2.Top:=5; progressbar2.left:=5;控制是否可见用progressbar2.visible 在状态条的事件中写procedure TC_ViewFM.C_StatusBarDrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect);begin if progressbar2.Visible then begin progressbar2.Parent :=C_StatusBar; progressbar2.Left := Rect.Left; progressbar2.Height := 17; progressbar2.Top := Rect.Top-1;; end;end; 先在状态条添加一项,设置这一项的Style 的属性为 psOwnerDraw 在状态条中显示进度条 fqcxjcdm摘 要:关键字:状态条,进度条类 别:API 有时我们在进行循环操作时往往要用一个进度条来指示进度,如果此时窗体上的组件较多,进度条的位置往往不好安排,在窗体底部的状态条中显示则是一个较好的办法。代码如下:一.首先声名几个全局变量:PrgBar: TProgressBar;二.在窗体的OnCreate事件中写入代码: PrgBar:= TProgressBar.Create(Form1);三.在状态条的OnDrawPanel事件中写入以下代码;procedure TFormywsj.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect);begin Panel:= StatusBar1.Panels[2];//假定进度条显示在状态条的第三个Panel中 with PrgBar do begin Top:= Rect.Top; Left:= Rect.Left; Width:= Rect.Right- Rect.Left; Height:= Rect.Bottom- Rect.Top; Visible:= True; Parent:= StatusBar1; Min := 0; Max := DM1.cdsYwsh.RecordCount; Step:= 1; end;end;当需要进行循环操作时,只需对PrgBar变量的相关属性进行赋值即可。 TC_ViewFM.C_StatusBarDrawPanel,这是一个什么事件啊?在什么情况下会触发这个事件? StatusBar的自画事件,当StatusBar需要重绘时触发。 那StatusBar什么情况需要重绘呢? 问下,Delphi里面的%d怎么用。 reset(自身)提示错误? dbgrid每一行加选择框 送100分,问题一解决,马上结贴~! 为何fastreport打印的数据都是两页的? 哪里有注册的fastreport下载? QRMemo怎么在打印时候不显示啊 如何使RichEdit透明或显示一幅背景图片?请高手指教... 數据類型轉換問題,急 (在線等待) 高分请教:关于图形剪切 关于系统托盘的问题 fast report demos 找不到customer.db,奇怪! 对一喜欢的女孩子表白之后得到的答复,请有爱心的朋友帮小弟分析一下~~~
progressbar2:tprogressbar;
........ progressbar2:=tprogressbar.Create(self);
progressbar2.Parent:=statusbar1;
progressbar2.Top:=5;
progressbar2.left:=5;控制是否可见用progressbar2.visible
procedure TC_ViewFM.C_StatusBarDrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
if progressbar2.Visible then
begin
progressbar2.Parent :=C_StatusBar;
progressbar2.Left := Rect.Left;
progressbar2.Height := 17;
progressbar2.Top := Rect.Top-1;;
end;
end;
fqcxjcdm
摘 要:
关键字:状态条,进度条
类 别:API
有时我们在进行循环操作时往往要用一个进度条来指示进度,如果此时窗体上的组件较多,进度条的位置往往不好安排,在窗体底部的状态条中显示则是一个较好的办法。代码如下:
一.首先声名几个全局变量:
PrgBar: TProgressBar;二.在窗体的OnCreate事件中写入代码:
PrgBar:= TProgressBar.Create(Form1);
三.在状态条的OnDrawPanel事件中写入以下代码;
procedure TFormywsj.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
Panel:= StatusBar1.Panels[2];//假定进度条显示在状态条的第三个Panel中
with PrgBar do
begin
Top:= Rect.Top;
Left:= Rect.Left;
Width:= Rect.Right- Rect.Left;
Height:= Rect.Bottom- Rect.Top;
Visible:= True;
Parent:= StatusBar1;
Min := 0;
Max := DM1.cdsYwsh.RecordCount;
Step:= 1;
end;
end;
当需要进行循环操作时,只需对PrgBar变量的相关属性进行赋值即可。