关于statusbar的问题 ( 积分: 50 )

  • 主题发起人 主题发起人 ygh1980
  • 开始时间 开始时间
Y

ygh1980

Unregistered / Unconfirmed
GUEST, unregistred user!
在statusbar中,创建几个panels(text 为‘问题一’,’问题二‘),我想用鼠标点击某一个panel 获取它的text内容或是index。请教各位大虾。
 
用鼠标点击的位置判断:
procedure TForm1.StatusBar1Click(Sender: TObject);
var
i: integer;
P : TPoint;
R : TRect;
begin
P.X := Mouse.CursorPos.X;
P.Y := Mouse.CursorPos.Y;
p:=ScreenToClient(p);
R.Top:=StatusBar1.Top;
R.Bottom:=StatusBar1.Top+StatusBar1.Height;
R.Left:=0;
for I := 0 to StatusBar1.Panels.Count - 1 do
begin
if i=StatusBar1.Panels.Count - 1 then
R.Right:=StatusBar1.Width
else
R.Right:=R.Left+StatusBar1.Panels.Width;
if PtInRect (R,P) then begin
Label1.Caption:=StatusBar1.Panels.Text;
break;
end else
Label1.Caption:='';
end;
end;
 
虽然还有点问题,方法好象还可行.
不知道有没有更方便的.有的话再发一下.谢了.
 
后退
顶部