Delphi XE5 Firemonkey TStringGrid OnClick事件

时间:2014-04-09 22:24:42

标签: android delphi firemonkey delphi-xe5 tstringgrid

我在Android上使用Delphi Firemonkey TStringGrid时遇到了一个非常奇怪的问题。看起来TStringGrid上的事件在windows和android平台上的触发方式不同。 例如:在windows firemonkey应用程序中,我有一个包含几列的字符串网格。 TStringGrid设置为只读。 OnClick事件我有以下代码:

TStringGrid(Sender).Cells[TStringGrid(Sender).ColumnIndex,TStringGrid(Sender).Selected] := 'result';

Android应用程序具有相同的代码OnClick事件

TStringGrid(Sender).Cells[TStringGrid(Sender).ColumnIndex, TStringGrid(Sender).Selected] := 'result';

当我运行Windows应用程序并单击字符串网格单元格时,它会被选中,然后在单元格中写入“结果”。

单击

之前的

窗口

enter image description here

单击

后的

窗口

enter image description here

当我运行Android应用程序并点击(点击)时,会发生的事情是'结果'写在先前选择的单元格中,然后在我单击的单元格后,单击被选中。

android之前点击

enter image description here

单击

android

enter image description here

我不确定这是Firemonkey中的错误还是预期的行为。有办法克服这个问题吗?

2 个答案:

答案 0 :(得分:1)

TGrid不是移动设备支持的控件,因此您应该避免使用它。最好的选择可能是具有自定义风格的TListBox。

答案 1 :(得分:0)

这可能是一个线程问题。但我不确定你是否使用最好的事件处理程序。如果您正在尝试更新正在选择的单元格,那么我建议您处理TStringGrid.OnSelChanged事件。更改单元格选择后会触发此事件。

请注意......不是通过鼠标点击(或手指点击)严格触发它。如果您将某种键盘连接到Android设备或桌面平台,则在使用箭头键和其他方式时也会触发。我想你明白了我的意思......但也许那就是你在寻找的东西。