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;
浙公网安备 33010602011771号