0

我正在使用 Delphi XE8 开发移动应用程序,并且在 TStringGrid 中遇到了一些问题。

  1. 我在 StringGridSelectCell 事件中编写了以下代码。

Showmessage(StringGrid.Cells[0, ARow]);

这在第一时间显示了所选行的正确值。但是当我尝试再次单击所选行时,此事件不会被触发。而且我无法取消选择特定的行。

  1. 因此,我尝试在 OnClick 事件中编写此消息。

    var iRowInd:整数;开始 iRowInd := StringGrid1.Selected; ShowMessage(StringGrid.Cells[0, iRowInd]); 结尾;

这在第一次点击时不起作用,当我第二次点击时它可以正常工作。此问题仅存在于 android mobile 中,而不存在于 Windows 中。

  1. 后来,我保留了两个事件代码,然后我也遇到了另一个问题。当我滚动网格时,它会触发 onClick 事件。因此,它显示了先前选择的 Row 值。

请给我一些解决方案。并提前致谢。

4

2 回答 2

1

让我们用 OnClick 事件来做这件事:

procedure TfmMain.StringGrid1Click(Sender: TObject);
begin
  Caption := 'Selected ROW ID: ' + StringGrid1.Selected.ToString + '. Selected COLUMN ID: ' + StringGrid1.ColumnIndex.ToString + '. Action at: ' + DateTimeToStr(Now);
end;

属性TStringGrid.Selected将返回 ROW ID(从零开始)

属性TStringGrid.ColumnIndex将返回 COLUMN ID(从零开始)

于 2015-06-30T09:00:12.863 回答
0

到目前为止,我已经在表单中使用了Material Design 。首先用户需要选择网格。然后,用户需要单击按钮,然后我继续我的逻辑。这使得良好的应用程序 GUI 并使功能也正确。

于 2015-07-02T05:50:20.680 回答