掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TreeView コンポーネントで、選択されたアイテムの ItemID を取得するには? (ID:1570)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
たぶん、HTreeItemを使うと破綻しますよ。 理由は、HTreeItemハンドルから、TTreeItemオブジェクトを受け取ることができないからです。 たとえば、Captionが"TEST"、というTreeItem1オブジェクトがあったとします。 このハンドルが、HTreeItem1という変数に入っているハンドルだったします。 このとき、HTreeItem1は、自分自身がTreeItem1のハンドルであることはわかりません。もちろん、Captionが"TEST"であることはわかりますし、子ノードのハンドル、親ノードのハンドルもわかります。 VCLとしての、TTreeItemオブジェクトがわからないのです。 もし、ハンドルを使って認識するのであれば、完全にハンドルでデータの管理をしなければならなくなると思います。 # TTreeItemには、Dataプロパティがありますが、これも使えません 以上のことを知った上で、HTreeItemを使用するのであれば、TreeView_???というAPI群を使用して、選択された項目のハンドルを得ることができます。 TreeView_???のAPI群の内容は、単純にメッセージを送信してそのResultを受けるだけです。 選択項目は確か、TreeView_GetSelectionだったと思います。 TreeView_GetSelection(TreeView1.Handle);で、HTreeItemが取得できます。 一応、ハンドルはIntegerでも納まります。 > integer 値から コンポーネント TreeView 上のある一個のノードを特定できるのでしょうか? しかし、これはできません。 やるとしたら、すべてのノードのTTreeNode.ItemIdを比較するしかないと思います。 速度を求めるためにやるのであれば、完全にハンドルのみで管理するか、VCLのみで管理するかどちらかにしたほうがいいですよ。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.