我有一个简单的Android应用程序,其中包含TSringGrid和2列,其中之一是TColumn,另一个是TCheckColumn。我可以使用TButton和适当的代码对每一列进行排序,但是TButton占用了宝贵的屏幕空间,可以更好地利用它。是否可以通过使用OnHeaderClick事件并从该事件中调用适当的操作来确定选择了哪一列。
非常感谢...
答案 0 :(得分:1)
首先,是事件处理程序签名的示例:
procedure TForm5.StringGrid1HeaderClick(Column: TColumn);
Column
参数是单击其标题的列的人
有很多方法可以检测到单击了哪个列,这是三种:
另一种方法:检查列的Header
属性
if Column.Header = 'First column' then
ShowMessage('First clicked')
else
if Column.Header = 'Second column' then
ShowMessage('Second clicked');
替代方法二:检查列的Name
属性
if Column.Name = 'Column1' then
ShowMessage('First clicked')
else
if Column.Name = 'CheckColumn1' then
ShowMessage('Second clicked');
替代方法三:将值分配给每一列的Tag属性 在设计时,然后在运行时检查Column.Tag值
case Column.Tag of
0: ShowMessage('First clicked');
1: ShowMessage('Second clicked');
end;
当然,您需要根据实际网格更改标识符。