首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TStringGrid隐藏列

TStringGrid隐藏列
EN

Stack Overflow用户
提问于 2017-12-14 13:20:47
回答 2查看 1.9K关注 0票数 0
代码语言:javascript
复制
procedure TFormMain.CaseListMyShares(uri: String);
var
  i: Integer;
begin
  myShares := obAkasShareApiAdapter.UserShares(uri);
  MySharesGrid.RowCount:= Length(myShares) +1;
  MySharesGrid.AddCheckBoxColumn(0, false);
  MySharesGrid.AutoFitColumns;

  for i := 0 to Length(myShares) -1 do
  begin
    MySharesGrid.Cells[1, i+1]:= myShares[i].patientCase;
    MySharesGrid.Cells[2, i+1]:= myShares[i].sharedUser;
    MySharesGrid.Cells[3, i+1]:= myShares[i].creationDate;
    MySharesGrid.Cells[4, i+1]:= statusText[StrToInt(myShares[i].situation) -1];
  end;
end;

我想为自己创造一个看不见的列。我必须知道行的标识符,才能使用REST进行一些操作。但是最终用户不需要在表上看到这个标识符。如何创建一个不可见的列?

myShares[i].identifier,我想把它藏在每一行。这有可能吗?用标签什么的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-14 14:07:25

要分配标识符,请执行以下操作:

代码语言:javascript
复制
MySharesGrid.Objects[0, i+1] := TObject(myShares[i].identifier)

访问标识符(例如OnClick):

代码语言:javascript
复制
Integer(MySharesGrid.Objects[0, MySharesGrid.Row])
票数 1
EN

Stack Overflow用户

发布于 2022-02-17 14:26:46

要回答这个问题,请将其ColWidths指定为-1,这样:

代码语言:javascript
复制
StringGrid1.ColWidths[4] := -1;

您可以通过将其设置为正值来再次显示它。

这不是使用StringGrid来存储数据,而是让用户界面显示/隐藏列,就像标题中的折叠快捷键,以及相应的Show按钮来恢复它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47814397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档