【发布时间】:2017-09-27 09:04:45
【问题描述】:
我正在使用 Delphi 10.1 Berlin 制作多设备应用程序。我有一个TStringGrid 来列出查询中的一些数据。
我还有一个弹出菜单(编辑、删除、...),但为了编辑/删除一个项目,我必须使用鼠标左键单击一个单元格。
是否可以在显示弹出菜单之前仅使用右键“选择一行”?
我试过了:
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;
但它在mbRight 和Perform() 上显示错误。
【问题讨论】:
-
我看到您还添加了“多设备应用程序”。请始终为 FMX 应用程序添加
firemonkey标签。 -
您是如何添加
OnMouseDown事件的? FMXTStringGrid不会公开此类事件。 -
是的@Victoria 仍然不是
OnMouseDown:) 我在他们的代码上取笑 OP,这显然是从其他 Q/A 中复制的。但请根据pastebin输入答案 -
在 formCreate 事件上我写了 StringGrid1.OnMouseDown:=StringGrid1MouseDown;
标签: delphi mouseevent firemonkey right-click tstringgrid