2011-04-10 7 views
5

जब एप्लिकेशन शुरू होता है तो मैं मुख्य रूप पर पेड़ का विस्तार करना चाहता हूं। मैं इसे कैसे कर सकता हूं? मैं इसी संपत्ति को नहीं ढूंढ सकता। सी ++ बिल्डर 2009सभी TTreeView नोड्स को स्वतः कैसे विस्तारित करें?

उत्तर

25

आपको पेड़ दृश्य पर FullExpand() पर कॉल करने की आवश्यकता है।

+0

अंत में विस्तारित होने पर मैं पहले आइटम पर कैसे जा सकता हूं। स्क्रॉलबार अधिकतम तल पर है। – Hidden

+2

@TheAllSeeingEye शायद 'टॉपइटम' और/या 'चयन' का उपयोग कर रहे हैं। –

+0

@ हाइड: मैं स्क्रॉलबार के साथ समस्या का पता नहीं लगा सकता। मैं इन दो चीजों की कोशिश कर रहा था लेकिन मुझे अभी भी यह मुद्दा है। 'tvTreeView.Selected: = tvTreeView.TopItem'or 'tvTreeView.Select (tvTreeView.Item [0])' - यह मेरे लिए काम नहीं करता है। आपने इसे कैसे ठीक किया? – astack

1

जब treenode सच

करने के लिए अपनी विस्तार संपत्ति कर आप treeNode वस्तु के लिए एक संपत्ति मिलेगा जोड़ने, यह यो सच से पहले नोड्स की सूची में जोड़ने की स्थापना की।

और भी आप TreeView ExpandAll कहा जाता है के लिए एक विधि पा सकते हैं

मेरे सादर


इस कोड

//this will expand all nodes of Level and their parents 
procedure ExpandTree(Tree: TTreeView; Level: integer); 

    procedure ExpandParents(Node: TTreeNode); 
    var 
    aNode : TTreeNode; 
    begin 
    aNode := Node.Parent; 
    while aNode <> nil do begin 
     if not aNode.Expanded then 
     aNode.Expand(false); 
     aNode := aNode.Parent; 
    end; 
    end; 

var 
    aNode : TTreeNode; 
begin 
    if Tree.Items.Count > 0 then begin 
    aNode := Tree.Items[0]; 

    while aNode <> nil do begin 
     if aNode.Level = Level then begin 
     aNode.Expand(false); 
     ExpandParents(aNode); 
     end; 
     aNode := aNode.GetNext; 
    end; 
    end; 
end; 

//this will expand the Node and it's parents 
procedure ExpandNode(Node: TTreeNode); 
var 
    aNode : TTreeNode; 
begin 
    Node.Expand(false); 

    aNode := Node.Parent; 
    while aNode <> nil do begin 
    if not aNode.Expanded then 
     aNode.Expand(false); 
    aNode := aNode.Parent; 
    end; 
end; 

कोशिश करते हैं और देखते हैं संदर्भ http://www.delphipages.com/forum/showthread.php?t=159148

मेरे सादर

+0

TTreeView में ExpandAll विधि नहीं है। TreeViw के लिए सभी ऑब्जेक्ट्स desing time – Funtime

+1

पर स्टैक ओवरफ्लो पर जोड़ा गया था, आपको कोड को प्रारूपित करने के लिए/pre या जो भी उपयोग करने की आवश्यकता नहीं है। आपको बस चार रिक्त स्थानों से इंडेंट करना है। इससे आपकी मदद भी होगी यदि आपने टैब का उपयोग नहीं किया था लेकिन आपके कथन को इंडेंट करने के लिए रिक्त स्थान हैं। इनलाइन कोड के लिए आप कोड को "बैक कोट" वर्णों से घिरा सकते हैं। पिछला उद्धरण (\ ') आमतौर पर tilde (~) के साथ मिलकर मिलता है। पिछली बोली का उपयोग टिप्पणियों में भी किया जा सकता है: 'ऐसा ही'। –

0

ऐसा करने के कई तरीके हैं। सबसे आसान स्वीकार किए जाते हैं जवाब में के रूप में

TreeView1.FullExpand; 

होगा - वैकल्पिक रूप से

if TreeView1.items.GetFirstNode <> nil then 
    TreeView1.items.GetFirstNode.Expand(True); 

या

if TreeView1.items[0] <> nil then 
    TreeView1.items[0].Expand(True); 

विस्तृत एक TTreeNode पर विधि उपयोगी है जब आप पूरी तरह से एक विशेष से विस्तार करना चाहते नोड जो रूट नोड नहीं है।

संबंधित मुद्दे