gpt4 book ai didi

delphi - 在命令显示组合框的下拉列表后,如何确保当鼠标在表单上移动时出现鼠标指针?

转载 作者:行者123 更新时间:2023-12-03 15:57:35 27 4
gpt4 key购买 nike

我有一个问题:

  1. 我有一个只有组合框的表单。
  2. 当第 3 项发生时,组合框具有焦点并且鼠标未悬停在表单上。
  3. 我触发组合框的下拉列表以在按键事件上显示。

当下拉列表可见,然后我将鼠标指针移到表单上时,指针要么不可见,要么显示它正忙,要么显示调整大小图标,但结束后不会变回正常指针表格。

是否可以采取一些措施来确保当组合框的下拉菜单显示时,当我将指针移到表单上时鼠标指针可见?

我已经尝试过:

  • Applicaiton.ProcessMessages 显示下拉列表后。
  • 显示下拉列表后将焦点更改为组合框所在的表单。
  • 在调用下拉列表后添加 Key := #0; 进行显示。

    procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
    begin
    SendMessage(ComboBox1.Handle, CB_SHOWDROPDOWN, Integer(True), 0);
    Key := #0;
    end;
  • 尝试使用计时器在按键事件中触发下拉菜单。

  • 在命令下拉菜单出现后尝试使用“SetCursor”。
  • 尝试使用“.DroppedDown”,但没有发现结果与“SendMessage”有任何差异。

我希望能够在显示下拉菜单后显示鼠标指针,但它被隐藏了。感谢您的任何建议。

(注意:我遇到的这个问题并非 Delphi 所独有。我能够使用 Visual C# 2017 重复该问题。无论哪种方式,如果有办法纠正此问题,最好知道)。

最佳答案

正如已经对该问题的评论,该问题与 Delphi 无关。您可以在包含操作系统呈现的类似组合的对话框中观察到相同的行为。 “运行”对话框中的示例就是一个示例。

涉及单个环境,在 OnDropDown 事件处理程序中重新设置光标可以解决该问题。

procedure TForm1.ComboBox1DropDown(Sender: TObject);
begin
winapi.windows.SetCursor(Screen.Cursors[Cursor]);
end;

最初我测试了上面的内容,因为下拉后没有人调用SetCursor。尽管之前似乎也没有人调用过它。所以我不知道原因或为什么上述修复有效。

关于delphi - 在命令显示组合框的下拉列表后,如何确保当鼠标在表单上移动时出现鼠标指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55925699/

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