列上的Tcxtreelist重叠文本Devexpress

时间:2016-04-18 11:14:29

标签: delphi text devexpress ondraw treelist

我有一个填充的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;

仅在单击站点时填充子节点。然后,这将显示所述站​​点存在的所有商品。再次提供清单是一个对象清单

我参与了自定义绘制活动,但我不知道要查看哪些选项。

在自定义绘图中测试 - OnCustomDrawDataCell:

AViewInfo.EditViewInfo.TextColor := clBlack;
AViewInfo.BoundsRect.Width := 200;
//AViewInfo.ContentRect.Width := 200;
AViewInfo.EditViewInfo.Paint(ACanvas);
ADone := True;

所有这些似乎都是将所有节点聚集到网格的最左侧,并将所有列放在彼此的顶部,同时仍然不增加根节点文本列的宽度。

TLDR: 我希望能够将列[0]中的文本设置为不剪辑,而是继续进入其他列或覆盖其他列。对于已由数据库和对象列表填充的tcxtreelist。

编辑2: 添加了图像,其中包含现在的外观 Example of grid now

正如您所看到的那样,“公司”正在被剪切,我希望根节点只在需要时继续在所有列中显示其文本。这样我可以更好地理清其他列的宽度,以尝试获得所需的视图。

0 个答案:

没有答案