ユニット3号機。 インターフェイスは 使用しています Windowsの、メッセージ、sysutilsの、バリアント、クラス、グラフィックス、コントロール、フォーム、 ダイアログ、ComCtrls、DB、ADODB、StdCtrlsを。 入力 PNodeInfo = ^ TNodeInfoを。 TNodeInfo = レコード ID:文字列; フルネーム:文字列; URL:文字列; エンド; TForm3 = クラス(TFormは) ADOConnection1:たTADOConnection。 ADOQuery1:TADOQuery。 TreeView1:TTreeViewの。 ボタン1:TButtonの。 手順CreateChildTree(のparentNode:TTreeNode)。 手順CreateViewTree(送信者:TObjectを); 手続きButton1Click(送信者:TObjectを); 手順TreeView1DblClick(送信者:TObjectを); プライベート { プライベート宣言} 公共 { 公開宣言} エンド。 VAR たForm3:TForm3。 実装 { $のR * .DFM } 手順TForm3.CreateChildTree(のparentNode:TTreeNode)。 VaRの クエリ:TADOQuery。 子ノード:TTreeNode; // 孩子结点 ChildNodeInfo:PNodeInfo。//孩子结点信息 開始 :クエリ = TADOQueryを。作成(ゼロ)。 でクエリを行う 始まる 接続を: = ADOConnection1。 SQL.Add(' 'のParentID = PINFOからID、フルネーム、URLを選択' ' + PNodeInfo(ParentNode.Data)^ ID +。' '' ')。 // 获取孩子结点信息 オープン。 一方で はない EOFが行う 始まる 新しい(ChildNodeInfoを)。 ChildNodeInfo ^ .ID: = FieldByName(' ID ' ).AsString。 ChildNodeInfo ^ .FullName: = FieldByName(' フルネーム' ).AsString; ChildNodeInfoのた.url ^: = FieldByName(' のURL ' ).AsString; 子ノード: = TreeView1.Items.AddChildObject(のparentNode、(^ ChildNodeInfo .FullName)、ChildNodeInfo) ; // 子ノード、子ノード情報やリンクを追加 CreateChildTree(子ノードを); //は再帰 ;次に エンド; 閉じる; エンド; エンド; 手順TForm3.CreateViewTree(送信者:TObjectを); VARの BootNode:TTreeNodeを; // ルート BootNodeInfo:PNodeInfo。// 根结点信息 始める と ADOQuery1 ん 始まる SQL.Clearを。 SQL.Add(' のParentIDはNULL IS SELECT ID、フルネーム、PINFOからURL '); // 获取根结点信息 オープン。 新(BootNodeInfo)。 BootNodeInfo ^ .ID: = FieldByName(' ID ' ).AsString。 BootNodeInfo ^ .FullName: = FieldByName(' フルネーム' ).AsString。 BootNodeInfo ^ .URL: = FieldByName(' のURL ' ).AsString。 TreeView1.Items.Clear; BootNode: = TreeView1.Items.AddChildObject(ゼロ(^ BootNodeInfo .FullName)、BootNodeInfo); //は、ルート・ノードを追加し、ルートノードとリンク情報 を閉じる; エンド; CreateChildTree(BootNode); // サブツリーの作成 TreeView1.FullExpandを; //は、すべてのツリーノードを展開する エンドを、 手順TForm3.Button1Click(送信者:TObjectを); 始める CreateViewTree(送信者); エンド; 手順TForm3.TreeView1DblClick(送信者:TObjectを); VARの TNODE:TTreeNode; X- 、Y:整数; 始める // ダブルジャンクションを取得し てのTreeView1の実行 開始 X-を: = ScreenToClient(Mouse.CursorPos).Xながら、 Y: = ScreenToClient(Mouse.CursorPos).Yながら、 TNODE: = GetNodeAt(X、Y)を、 エンド; IF(TNODE <> ゼロ)と(TNODE = TreeView1.Selected)次いで ShowMessage(PNodeInfo(TNode.Data)^。 URL); // 表示ノード情報ダブルクリッ 終了; 終了。