本文整理自网络,侵删。
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;
相关阅读 >>
Delphi 数据类型cardinal 怎么转换成 string?
更多相关阅读请进入《Delphi》频道 >>