读书人

这是什么原因唤起的呢

发布时间: 2013-12-11 16:44:13 作者: rapoo

这是什么原因引起的呢?
我就想把进度条放在状态栏中的第二个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;

读书人网 >.NET

热点推荐