【问题标题】:TTreeView Code conversionTTreeView 代码转换
【发布时间】:2014-06-24 23:23:50
【问题描述】:

我想知道如何使用 FireMonkey 在 Delphi XE6 中实现我在 Delphi 6 中使用的以下代码。

Node1:=Quick_Calc.EquivalenciesTree.Items.Add(nil,Text);

Node1:=Quick_Calc.EquivalenciesTree.Items.Add(Node1,Text);

Node1:=Quick_Calc.lEquivalenciesTree.Items.AddChild(Node1,Text);

【问题讨论】:

  • 感谢您的及时回答。我注意到您创建了自己的 AddChild 函数。

标签: delphi firemonkey delphi-xe6


【解决方案1】:

快速测试表明此代码有效,新的 FMX HD 桌面应用程序在表单上有一个空的 TTreeView:

procedure TForm1.FormCreate(Sender: TObject);
var
  Root: TTreeViewItem;
  Item: TTreeViewItem;
  SubItem: TTreeViewItem;
  i, j: Integer;

  function AddChild(Node: TTreeViewItem; NodeText: string): TTreeViewItem;
  begin
    Result := TTreeViewItem.Create(Self);
    Result.Text := NodeText;
    if Node <> nil then
      Result.Parent := Node
    else
      Result.Parent := TreeView1;
  end;

begin
  Root := TTreeViewItem.Create(Self);
  Root.Text := 'Root node';
  Root.Parent := TreeView1;
  for i := 1 to 10 do
  begin
    Item := AddChild(Root, Format('Item %d', [i]));
    for j := 1 to 2 do
      SubItem := AddChild(Item, Format('Child %d of Item %d', [j, i]));
  end;
end;

【讨论】:

    【解决方案2】:
    Procedure Carga_Nodo;
    Begin
     If NivAct=0 Then
      Begin
    {
       Nodo1:=Quick_Calc.ArbolEquivalencias.Items.Add(nil,CadMem)
    }
       Nodo[I].Text:=CadMem;
       Nodo[I].Parent:=Form1.ArbolEquivalencias;
       NivAnt:=NivAct;
       IndPad:=I;
       IndHer:=I;
       IndHij:=I;
      End
     Else
      Begin
      If NivAnt=NivAct Then
       Begin
    {   Nodo1:=Quick_Calc.ArbolEquivalencias.Items.Add(Nodo1,CadMem)}
        Nodo[I].Text:=CadMem;
        Nodo[I].Parent:=Nodo[IndPad];
       End
      Else
       If NivAct>NivAnt Then
        Begin
    {    Nodo1:=Quick_Calc.ArbolEquivalencias.Items.AddChild(Nodo1,CadMem)}
        IndPad:=I-1;
        Nodo[I].Text:=CadMem;
        Nodo[I].Parent:=Nodo[IndPad];
        End
       Else
        Begin
         J:=I;
         Repeat
    {      NodoPadre:=NodoPadre.GetPrev;}
          NodoPadre:=GetPrevItem(Nodo[J]);
          NivAnt:=Nodo[J].Level;
          J:=J-1;
         Until NivAnt=NivAct;
         J:=J+1;
    {     Nodo1:=Quick_Calc.ArbolEquivalencias.Items.Add(Nodo1,CadMem)}
         IndHer:=J;
         Nodo[I].Text:=CadMem;
         Nodo[I].Parent:=Nodo[IndHer];
        End;
       NivAnt:=NivAct;
      End;
    End;
    

    【讨论】:

    • 呃。所有这些变量来自哪里?甚至我和 J 也不是本地人。而且我看不出该代码与您的原始问题有什么关系。坚持使用 Ken 的代码。
    猜你喜欢
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-23
    • 2012-04-25
    • 2018-11-05
    • 2013-10-24
    • 2020-07-26
    相关资源
    最近更新 更多