在窗体上放一个进度条一个、statusbar1
procedure tform1.statusbar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
pb1.Parent:=statusbar1;
pb1.BoundsRect:=rect;end;
procedure tform1.statusbar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
pb1.Parent:=statusbar1;
pb1.BoundsRect:=rect;end;
CSDN首页 | 新闻聚焦 | 共享软件 | 俱乐部 | 开发文档 | 专家门诊 | 招聘求职 | Linux园地 | 程序员杂志
--------------------------------------------------------------------------------
我要回复 | 打印贴子 | 推荐给朋友 | 关闭窗口
主 题:statusbar中可以放入哪些控件?
作 者:peterluolaw
所属论坛:Delphi
问题点数:10
回复次数:10
人气指数:72
发表时间:2001-9-20 21:31:31
statusbar中可以放入哪些控件?我指的是不使用DRAW,而直接放入的有哪些控件? 转移贴子到 Visual C++ Visual Basic Delphi C/C++ C++ Builder ASM 数据库开发 PowerBuilder ActiveX/COM 数据算法 软件工程 图形/游戏/多媒体 安全技术 网络/通讯 技术书籍 文件格式 C# XML/SOAP 数据仓库 VBA 主页制作 图形处理 ASP PHP Perl Java Javascript JSP 嵌入式开发 .NET Framework lotus开发使用 ADO.NET ASP.NET Web Services Web Forms Windows Forms VB.NET VC.NET Windows 9x/ME Windows NT/2000/XP DOS Office使用 Office开发 Exchange server IIS 程序人生 软件市场 程序员考试 人才热线 建议和意见 灌水乐园 走向海外 程序员杂志 软件使用 资源使用 我看软件 寻找软件 行业软件 软件评测 Linux/Unix 硬件指南 程序员大本营 | 删除贴子 | 加到精华区
回复贴子:
qiubolecn(qiubole) 回复于2001-9-21 1:38:18 得0分删除回复
无
machin(刷新一下) 回复于2001-9-21 8:51:27 得0分删除回复 TEdit
xiaosanshao() 回复于2001-9-21 9:57:08 得0分删除回复
这个吗?一点沙子都容纳不了阿
Kingron(戒网中……) 回复于2001-9-21 10:19:20 得0分删除回复
自己继承一下,什么东西都可以放!
newyj(方恨少;寻找第二把刷子的人) 回复于2001-9-21 11:00:11 得5分删除回复
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls;
type
TForm1 = class(TForm)
sb: TStatusBar;
Button2: TButton;
procedure Button2Click(Sender: TObject);
procedure sbDrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel;
const Rect: TRect);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation
var
edt:Tedit;
cmb:TComboBox;
btn:Tbutton;{$R *.DFM}//1.设状态条某一panel的Style为psOwnerDraw.
//2.在状态条的OnDrawPanel事件中写代码:
//我放了3个控件进去procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to 2 do
sb.Panels[i].Style := psOwnerDraw; if edt=nil then
begin
edt:=TEdit.Create(self);
edt.Parent := sb; end;
if cmb=nil then
begin
cmb:=TComboBox.Create(self);
cmb.Parent := sb;
end;
if btn=nil then
begin
btn := TButton.Create(self);
btn.Parent := sb;
end;end;procedure TForm1.sbDrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel;
const Rect: TRect);
begin
if Panel =sb.Panels[0] then
begin
edt.Width := Rect.Right-Rect.left;
edt.Left:=Rect.Left;
edt.Height := Rect.Bottom-Rect.Top;
edt.Top := Rect.Top;
end;
if Panel=sb.Panels[1] then
begin
cmb.Width := Rect.Right-Rect.left;
cmb.Left:=Rect.Left;
cmb.Height := Rect.Bottom-Rect.Top;
cmb.Top := Rect.Top;
end;
if Panel=sb.Panels[2] then
begin
btn.Width := Rect.Right-Rect.left;
btn.Left:=Rect.Left;
btn.Height := Rect.Bottom-Rect.Top;
btn.Top := Rect.Top;
end;
end;end.
newyj(方恨少;寻找第二把刷子的人) 回复于2001-9-21 11:04:20 得5分删除回复
Kingron(戒网中……)的方法
需要扩展一下statusbar,加一个属性就行.分归我了.//----------------------------------------------------------------------//
//扩展StatusBar
//加入特性:允许在状态条上加入任意控件
type
TMStatusBar=Class(TStatusBar)
private
protected
public
constructor Create(AOwner: TComponent); override;
published
end;//TMStatusBar 事件扩展
constructor TMStatusBar.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
ControlStyle:= ControlStyle + [csAcceptsControls];
end;
afeisky(刀光剑影(离开xkx@MUD的日子)) 回复于2001-9-21 11:07:26 得0分删除回复
可以放到很多控件的啊.楼上的方法也行.
zenartus(投入者) 回复于2001-9-21 12:25:39 得0分删除回复
高手高手,佩服佩服
zds0707(周) 回复于2001-9-21 12:38:36 得0分删除回复
佩服佩服
peterluolaw(木瓜) 回复于2001-9-25 22:16:25 得0分删除回复
实际上,可以直接放入STATUSBAR的控件有3个:TBUTTON,TIMAGE,TPROGRESSBAR,方法非常简单:BUTTON.PARENT:=STATUBAR!
--------------------------------------------------------------------------------
我要回复:(请您对您的言行负责,遵守中华人民共和国有关法律、法规,尊重网上道德)
如果你只是觉得这个贴子好,而没想留言的话,请点击后面的贴子提前连接。
返回问题 | 关闭窗口
美达美简介 广告服务 英语步步高 程序员大本营 百联美达美科技有限公司 版权所有
ProgressBar: TProgressBar;
// 创建
ProgressBar := TProgressBar.Create(Self);
ProgressBar.Parent := StatusBar1;
ProgressBar.SetBounds( 0, 0, StatusBar1.Panels[0].Width, StatusBar1.ClientHeight ); // 设置边界,可能还需要调整一下然后你就使用ProgressBar吧,用完后FREE掉