gpt4 book ai didi

Delphi:StringGrid、位置和上下文菜单

转载 作者:行者123 更新时间:2023-12-03 18:15:28 25 4
gpt4 key购买 nike

我在使用 TStringGrid 和弹出菜单时遇到问题

我想知道从弹出菜单中选择一个项目时上次处于事件状态的单元格的行/列。但是,当我单击弹出菜单时,StringGrid.Row 返回为 -1。

我试过使用 MouseToCell 作为 OnClick 的一部分,但即使在设置 SG.Row 之后它仍然在弹出菜单例程中返回 -1 ......我怀疑问题是网格失去了焦点。

是否有任何解决方案不需要 OnClick 设置全局变量?

我正在使用链接到弹出菜单上的项目的操作列表,以确保工具栏和弹出菜单之间的操作一致

最佳答案

恐怕我没有完全理解你的意思。当我左键单击字符串网格中的一个单元格时,它会被选中,但当我右键单击它时不会。当我右键单击它时,会显示弹出菜单(如果已分配),并且在 MenuItemClick 上我可以轻松阅读 rowcol当前选中。见 example video .

我猜你真的想要这个:你想要右键单击来更改事件单元格以及左键单击。这很容易做到:

procedure TForm1.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbRight then
StringGrid1.Perform(WM_LBUTTONDOWN, 0, MakeLParam(Word(X), Word(Y)));
end;

关于Delphi:StringGrid、位置和上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3522971/

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