我有一个填充的 tcxtreelist,其中所有根节点(任何设置为级别 0 的节点)都是更多所需信息的父节点。我遇到的问题是文本被用于子节点的列剪切。
我希望能够让根节点(LSite.Name)中的文本跨越所有列的长度,基本上我想删除剪辑。但是我希望子节点默认工作。
这是怎么做到的?
编辑:添加代码
LSite : TSiteList;
i : Integer;
LNode : TcxTreeListNode;
// variables used are above
for i := 0 to FSiteList.Count - 1 do
begin
LSite := TSiteList(FSiteList.Items[i]);then
LNode := TreeTypes.Add;
LNode.Values[0] := LSite.Name;
LNode.Data := LSite; // this is is location name built up from a database which populates FSiteList(Object list)
end
这就是根节点的填充方式。数以千计的记录以及其他地方使用的一些信息,但关于列表,我关心的是适合所有列的名称。
子节点:
LOffer : TOfferList;
i : Integer;
LNode, LSiteNode : TcxTreeListNode;
begin
LSiteNode := TreeTypes.FocusedNode;
for i := 0 to FOfferList.Count - 1 do
begin
LOffer := TOfferList(FOfferList.Items[i]);
LNode := LSiteNode.AddChild;
LNode.Values[1] := Trim(FOfferList.Items[i].InstName + ' ' + FOfferList.Items[i].SoftName);
LNode.Values[2] := Trim(FOfferList.Items[i].SerialNumber + ' ' + FOfferList.Items[i].ActivateNum);
LNode.Values[3] := Trim(FOfferList.Items[i].OfferNum);
LNode.Data := LOffer;
end;
end;
仅当单击站点时才会填充子节点。然后,这将显示该站点存在的所有报价。再次offerlist是一个objectlist
我玩过自定义绘图事件,但我不知道要查看哪些选项。
在自定义绘图处进行测试 - OnCustomDrawDataCell:
AViewInfo.EditViewInfo.TextColor := clBlack;
AViewInfo.BoundsRect.Width := 200;
//AViewInfo.ContentRect.Width := 200;
AViewInfo.EditViewInfo.Paint(ACanvas);
ADone := True;
所有这一切似乎都是将所有节点聚集到网格的最左侧,并将所有列组合在一起,同时仍然不增加根节点文本列的宽度。
TLDR:我希望能够让来自 column[0] 的文本不被剪辑,而是继续进入其他列或覆盖其他列。对于已由数据库和对象列表填充的 tcxtreelist。
如您所见,“公司”正在被剪裁,如果需要,我希望该根节点继续在所有列中显示其文本。这样我可以更好地整理其他列的宽度以尝试获得所需的视图。