首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

这是什么原因唤起的呢

2013-12-11 
这是什么原因引起的呢?我就想把进度条放在状态栏中的第二个Panel中,可它却总是出现在第一个Panel中,真是不

这是什么原因引起的呢?
我就想把进度条放在状态栏中的第二个Panel中,可它却总是出现在第一个Panel中,真是不知怎么回事啊!代码如下,请各位帮我看下错在那里了!


运行结果图:
这是什么原因唤起的呢
经过调试发现调用procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
  Panel: TStatusPanel; const Rect: TRect);过程Rect根本不是我想用的大小,不知是那里来的尺寸,还有为什么我将此调用过程去掉后,仍然进度条会出现在状态栏中,StatusBar1DrawPanel这个过程难道是系统自动调用的,而不是人为调用的吗?求指教!!
TStatusBar
[解决办法]
不用搞那么多,直接在主窗体的OnResize事件中处理

procedure TForm1.FormResize(Sender: TObject);
begin
  // 进度条在第二个panel内
  ProgressBar1.Left := StatusBar1.Panels[0].Width + 1;
  ProgressBar1.Top := StatusBar1.Top + 2;
end;

热点排行