如何把进度条放入状态栏里?
解决方案 »
- 打印panel中的内容(包括image、memo)丢图了,十万火急
- 昨天公司联欢晚会上竟然有人表演变脸
- 求Delphi中对源代码行数的限制!
- 如何把资源里的对话框变成程序中的tab页面?
- 利用ADO连接EXCEL(ODBC)后如何对其数据源进行读写操作(在线)
- 在线等待,解决马上放分,小问题
- 我在调用别一个窗体为什么数据没有显示?
- 为什么会出现Invalid pointer operation(无效的指针操作)?
- 如何在程序中搜索计算机中指定扩展名的所有文件?
- 我快疯了!!!
- ★★关于《Delphi5 开发人员指南》8.7编写动画程序中的例子,无法运行,怎么回事?
- TShellListView怎么实现文件类型过滤?(要简单,在线等待)
Left = 0
Top = 427
Width = 688
Height = 19
Panels = <>
object ProgressBar1: TProgressBar
Left = 2
Top = 3
Width = 150
Height = 15
TabOrder = 0
end
end把上面的代码粘贴到你的窗体上看看~~
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, Menus;type
TForm1 = class(TForm)
status: TStatusBar;
MainMenu1: TMainMenu;
file11: TMenuItem;
Exit1: TMenuItem;
InsertProcressbar11: TMenuItem;
N11: TMenuItem;
procedure statusDrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
procedure Exit1Click(Sender: TObject);
procedure InsertProcressbar11Click(Sender: TObject);
private
{ Private declarations }
colorindex:integer;
BookOpen: Boolean;
ssbmp: TBitmap;
Progress:TProgressBar;
StatusDrawRect:TRect; //记录要插入状态条特技的坐标范围
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.Exit1Click(Sender: TObject);
begin
close;
end;procedure TForm1.InsertProcressbar11Click(Sender: TObject);
Var
i,count: integer;
StaPanleWidth:integer;
begin
progress := TProgressBar.Create(Form1);
count := 3000; //进程条的最大值
staPanleWidth := status.Panels.Items[2].Width;
//由于进程条很宽,所以需要改变状态条嵌板的宽度,这里先保存它的宽度
status.Panels.Items[2].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; //该进程条的拥有者为状态条
Min := 0;
Max := Count; //进程条的最大值与最小值
step := 1;
for i:=1 to Count do
Stepit; //累加进度条
finally
free;
end; //with
status.Panels.Items[2].Width := StaPanleWidth; //恢复状态条宽度
end;
end;end.