gpt4 book ai didi

delphi - 使用 DragMode=dmAutomatic 时 OnClick 和 MouseDown 不起作用

转载 作者:行者123 更新时间:2023-12-02 07:03:07 30 4
gpt4 key购买 nike

我在 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/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com