作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 TPanel 和 TAdvPanel(TMS 组件)上左键单击时也遇到问题。如果我设置 DragMode = dmAutomatic
则左键单击不起作用。右键单击即可。
procedure TMain_Form.Panel_Item_01MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
begin
{ whatever I type here nothing happen, even showmessage wont popup - no effect}
end;
if Button = mbRight then
begin
{ here code works fine }
end;
end;
对我来说似乎很简单,但是......找不到解决此问题的方法并在单击左侧按钮时调用过程。伙计们,有什么想法吗?
最佳答案
估计问题现在已经解决了。
如果将TPanel组件DragMode设置为dmAutomatic似乎无法触发OnClick事件。但是,当我将相同的 TPanel DragMode 设置为 dmManual 时,它甚至可以运行 OnClick。
即使我手动设置Panel_Item_01.DragMode := dmManual;,问题也能在OnMouseEnter的帮助下解决。现在它可以识别鼠标左键并保留 TPanel DragDrop 功能。
这是完整的代码:
procedure TMain_Form.Panel_Item_01MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
begin
Panel_Item_01.DragMode := dmManual;
{ ..rest of code.. }
end;
if Button = mbRight then
begin
Panel_Item_01.DragMode := dmAutomatic;
{ ..rest of code.. }
end;
end;
procedure TMain_Form.Panel_Item_01MouseEnter(Sender: TObject);
begin
Panel_Item_01.DragMode := dmManual;
end;
procedure TMain_Form.Panel_Item_01MouseLeave(Sender: TObject);
begin
Panel_Item_01.DragMode := dmAutomatic;
end;
关于delphi - 使用 DragMode=dmAutomatic 时 OnClick 和 MouseDown 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14516629/
我在 TPanel 和 TAdvPanel(TMS 组件)上左键单击时也遇到问题。如果我设置 DragMode = dmAutomatic 则左键单击不起作用。右键单击即可。 procedure TM
我是一名优秀的程序员,十分优秀!