• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

keke750

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

Delphi 有关StatusBar控件:手动控制刷新显示图片以及文字

实现的效果如下图:

不使用StatusBar OnDrawPanel自带事件实现 不使用的好处为可以自动控制刷新的次数 在不必要的时候不进行刷新。

代码如下:

1.添加一个中间层组件ColorPanel 来负载图片的SpeedButton,SpeedButton来加入图片

2.初始化

procedure TfrmServerMonitor.DoInitColorPanel;
var
h: integer;
begin
for h:=1 to 5 do
begin
pnlSelect(h);
end;
end;

3.进行最后的加载到StatusBar上。

procedure pnlSelect(Count: integer);
var
pnlSelect: TPanel;
img : Tbitmap;
btn: TSpeedButton;
h: integer;
Rec: TRect;
begin
try
img := TBitmap.Create;
il1.GetBitmap(Count - 1,img);
case Count of
1: pnlSelect := pnl1;
2: pnlSelect := pnl2;
3: pnlSelect := pnl3;
4: pnlSelect := pnl4;
5: pnlSelect := pnl5;
end;
case Count of
1: btn := btn4;
2: btn := btn5;
3: btn := btn6;
4: btn := btn7;
5: btn := btn3;
end;
pnlSelect.Color := $00F3E2CF;
pnl1.Parent := stat1;
pnl1.Left := stat1.Panels[0].Width + 3 ;
pnl1.Width := stat1.Panels[1].Width - 3;
pnl1.Top := 0;
pnl2.Parent := stat1;
pnl2.Left := stat1.Panels[1].Width + 53;
pnl2.Width := stat1.Panels[2].Width - 3;
pnl2.Top := 0;
pnlSelect.Parent := stat1;
pnlSelect.Left := stat1.Panels[2].Width + 153;
pnlSelect.Width := stat1.Panels[3].Width - 3;
pnlSelect.Top := 0;
pnl4.Parent := stat1;
pnl4.Left := stat1.Panels[3].Width + 253;
pnl4.Width := stat1.Panels[4].Width - 3;
pnl4.Top := 0;
pnl5.Parent := stat1;
pnl5.Left := stat1.Panels[3].Width + 353;
pnl5.Width := stat1.Panels[4].Width - 3;
pnl5.Top := 0;
h := stat1.Panels[Count].Width - 4;
Rec.Left := stat1.Panels[Count].Width + 3;
Rec.Top := stat1.Panels[Count].Width + 3 + 2;
Rec.Right := Rec.Left + h + 20;
Rec.Bottom := Rec.Top + h;
btn.Glyph := img;
except
ShowMessage('初始化失败');
end;

end;

 

posted on 2014-03-06 09:03  keke750  阅读(850)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3