Я полагаю, что коллеги-программисты не могут ответить на этот вопрос, и я считаю, что это важный вопрос для любого программиста, работающего с Delphi Prism. Поэтому я решил ответить на вопрос сам, а не удалять его, поскольку нашел ответ на него в другом вопросе StackOverflow. Тем не менее, мой вопрос и их вопрос разные, но требуют одинакового ответа.
Я написал простой и быстрый пример с призмой delphi, чтобы показать, как использовать древовидную структуру и иметь возможность хранить и извлекать объекты в узле древовидной структуры.
Вот мой пример Treeview
namespace TreeViewExample;
interface
uses
System.Drawing,
System.Collections,
System.Collections.Generic,
System.Windows.Forms,
System.ComponentModel;
type
/// <summary>
/// Summary description for MainForm.
/// </summary>
MainForm = partial class(System.Windows.Forms.Form)
private
method MainForm_Load(sender: System.Object; e: System.EventArgs);
method treeView1_Click(sender: System.Object; e: System.EventArgs);
protected
method Dispose(disposing: Boolean); override;
public
constructor;
end;
theclass = class
thestr:String;
public
constructor;
end;
implementation
{$REGION Construction and Disposition}
constructor MainForm;
begin
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
end;
method MainForm.Dispose(disposing: Boolean);
begin
if disposing then begin
if assigned(components) then
components.Dispose();
//
// TODO: Add custom disposition code here
//
end;
inherited Dispose(disposing);
end;
{$ENDREGION}
constructor theclass;
begin
thestr:='Testing Treeview.';
end;
method MainForm.MainForm_Load(sender: System.Object; e: System.EventArgs);
var topnode:treenode;
theObject:theclass;
begin
theObject:=new theclass;
treeview1.BeginUpdate;
topnode:=treeview1.Nodes.Add('node1');
topnode.Nodes.Add('no data node');
topnode.Nodes.Add('data node').Tag := theObject;
topnode.Expand;
treeview1.EndUpdate;
end;
method MainForm.treeView1_Click(sender: System.Object; e: System.EventArgs);
begin
if treeview1.SelectedNode.Text='data node' then
MessageBox.Show(theClass(Treeview1.SelectedNode.Tag).thestr);
end;
end.
Вот ссылка на вопрос.
сохранение текстовых полей в массив (и извлечение данных из массива) при использовании дерева в c #