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


本文整理自网络,侵删。

 

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 安装apk

Delphi 简单播放mp3

Delphi 锁定系统解锁系统

Delphi jpg图像加文字水印

Delphi 注释方法

Delphi 数据类型cardinal 怎么转换成 string?

Delphi rect()

Delphi什么是thttpclient?

Delphi 调用极光推送服务端http api实例

Delphi获取硬件信息

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...