您的位置:首页 > 其它

如何知道鼠标点击的statusbar的位置

2009-11-07 17:11 260 查看
procedure TForm2.StatusBar1Click(Sender: TObject);
var
mpt: TPoint;
x: integer;
j: integer;
panel: integer;
begin
if (StatusBar1.SimplePanel) OR (StatusBar1.Panels.Count = 0) then
begin
Memo1.Lines.Add('Clicked on a StatusBar, no Panels');
Exit;
end;

mpt := Mouse.CursorPos;
mpt := StatusBar1.ScreenToClient(mpt);
panel := -1;
x := 0;
for j := 0 to StatusBar1.Panels.Count - 1 do
begin
x := x + StatusBar1.Panels[j].Width;
if mpt.x < x then
begin
panel := j;
Break;
end;
end;

if panel = -1 then
panel := -1 + StatusBar1.Panels.Count;

Memo1.Lines.Add(Format('Clicked on StatusPanel %d', [panel]));
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: