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程序中状态栏点击事件的处理过程。通过遍历状态栏的面板并确定鼠标点击的位置来判断点击发生在哪个面板上,并在Memo组件中记录下被点击的状态栏面板编号。
1165

被折叠的 条评论
为什么被折叠?



