Delphi XE5 Firemonkey TStringGrid OnClick事件
Android上的Delphi Firemonkey TStringGrid有一个很奇怪的问题。 它看起来像TStringGrid上的事件在Windows和Android平台上触发不同。 例如:在Windows Firemonkey应用程序中,我有一个带有几列的字符串网格。 TStringGrid被设置为只读。 OnClick事件我有以下代码:
TStringGrid(Sender).Cells[TStringGrid(Sender).ColumnIndex,TStringGrid(Sender).Selected] := 'result';
Android应用程序具有exactley相同的代码OnClick事件
TStringGrid(Sender).Cells[TStringGrid(Sender).ColumnIndex, TStringGrid(Sender).Selected] := 'result';
当我运行windows应用程序并单击字符串网格单元格时,它将变为选中状态,然后将'结果'写入单元格中。
点击之前的窗口
点击后的窗口
当我运行android应用程序,并点击(点击)会发生什么'结果'被写入先前选择的单元格中,然后在那个单元格之后我点击被选中。
android之前点击
点击后的android
我不确定这是Firemonkey中的错误还是预期的行为。 有没有办法解决这个问题?
TGrid不支持移动设备,所以您应该避免使用它。 最好的选择可能是一个自定义风格的TListBox。
这可能是一个线程问题。 但我不太确定你使用的是最好的事件处理程序。 如果您尝试更新正在选择的单元格,那么我会建议您处理TStringGrid.OnSelChanged事件。 单元格选择更改后,此事件被触发。
但要小心......它不会被鼠标点击(或手指点击)严格触发。 如果您将某种键盘连接到Android设备或台式机平台上,则当您使用箭头键和其他方式时,它也会触发。 我想你明白了我的意思......但是那也许就是你想要的。
链接地址: http://www.djcxy.com/p/8937.html