घर
Top.Mail.Ru Yandeks.Metrika
मंच: "शुरुआती";
वर्तमान संग्रह: 2018.11.04;
डाउनलोड करें: [xml.tar.bz2];

नीचे

TTreeView पर सवाल। इसी तरह की शाखाएँ खोजें


Drowsy ©   (2016-09-06 20:15) [0]

SourceIbXTreeView TTreeView का वंशज है।
// SourceIbXTreeView को मेन फॉर्म से इनपुट फॉर्म में ले जाएं। SavedOwner: = SourceIbXTreeView.Owner; SavedOwner.RemoveComponent (SourceIbXTreeView); F_objred.InsertComponent (SourceIbXTreeView); SourceIbXTreeView.Parent: = F_objred.Panel5; ====> Вот здесь (при смене парента), вызывается удаление всех нодов. У обработчик удаления выглядит так : procedure TIBXTreeView_Pure.DelNode(Sender: TObject; Node: TTreeNode); Var SpecialData : TItemRec; begin if Assigned(Node) then if Assigned(Node.Data) then begin SpecialData:=Node.Data; SpecialData.Free; SpecialData:=nil; Node.Data:=nil; ==> Вот здесь не происходит обнуления Node.Data end; end;

2 प्रश्न:
1) पैरेंट नोड्स को बदलते समय क्यों हटाया जाता है?
2) Node.Data को रीसेट क्यों नहीं किया जाता है?

धन्यवाद.




Drowsy ©   (2016-09-15 02:04) [1]

?



iop ©   (2016-09-15 10:59) [2]

2 प्रश्न:
1) पैरेंट नोड्स को बदलते समय क्यों हटाया जाता है?
2) Node.Data को रीसेट क्यों नहीं किया जाता है?


1। माता-पिता को बदलते समय, कोई भी नोड नहीं हटाया जाता है।
2। क्योंकि आपके पास एक आनुवांशिक प्रोग्राम डिज़ाइन है



Drowsy ©   (2016-09-20 03:37) [3]


> 1। माता-पिता को बदलते समय, कोई भी नोड नहीं हटाया जाता है।
> 2। क्योंकि आपके पास एक आनुवांशिक प्रोग्राम डिज़ाइन है




फॉर्म में 2 पैनल है और पहले पैनल पर बटन एक पेड़ है। बटन से, मैं पेड़ को दूसरे पैनल पर ले जाता हूं। माता-पिता को बदलते समय, नोड्स को हटाने की घटना को उठाया जाता है।

यूनिट UnitTmp; इंटरफ़ेस का उपयोग करता है विंडोज, संदेश, SysUtils, वेरिएंट, कक्षाएं, ग्राफिक्स, नियंत्रण, प्रपत्र, डायलॉग्स, StdCtrls, ComCtrls, ExtCtrls; टाइप TForm1 = वर्ग (TForm) पैनलएक्सएनयूएमएक्स: टीपीएनएल; TreeView1: TTreeView; पैनलएक्सएनयूएमएक्स: टीपीएनएल; Button1: TButton; प्रक्रिया Button2Click (प्रेषक: Tobject); प्रक्रिया TreeView2Deletion (प्रेषक: Tobject; नोड: TTreeNode); निजी {निजी घोषणाएँ} सार्वजनिक {सार्वजनिक घोषणाएँ} अंत; वर Form2: TForm1; कार्यान्वयन {$ R * .dfm} प्रक्रिया TForm1.Button1 क्लिक करें (प्रेषक: TObject); var TmpTree: TTreeView; शुरू करना TmpTree: = TreeView1; TreeView2.Owner.RemoveComponent (TreeView1); पैनल xNUMX.InsertComponent (TmpTree); TmpTree.Parent: = Panel1; // <- यहाँ TreeView1Deletion को पेड़ के सभी नोड्स के लिए कहा जाता है। अंत; प्रक्रिया TForm2.TreeView2Deletion (प्रेषक: Tobject; नोड: TTreeNode); शुरू करना // OnDeletion - जब प्रत्येक नोड के लिए एक नोड पेड़ को हटा दिया जाता है तब उत्पन्न होता है। // "नोड" पैरामीटर में वह नोड होता है जिसे हटाया जा रहा है। // इस प्रकार, इस घटना का उपयोग करना सुविधाजनक है, उदाहरण के लिए, // नोड को हटाने से पहले, इससे जुड़े डेटा को नष्ट करें, // यदि कोई हो, तो उसकी डेटा प्रॉपर्टी आदि में निहित हैं। अंत; अंत।



iop ©   (2016-09-20 09:03) [4]

माता-पिता को बदलते समय, कोई भी नोड नहीं हटाया जाता है।



iop ©   (2016-09-20 09:06) [5]

TForm1.Button1 क्लिक करें (प्रेषक: Tobject);
एफ: TFotm;
शुरू करना
f: = TForm2.Create (एप्लिकेशन);
TreeView1.Parent: = f;
अंत;

आप बटन पर सौ बार क्लिक करते हैं - सौ बार ट्रिवियम माता-पिता को बदल देगा और एक भी नोड नहीं खोएगा।
यद्यपि आप सौ नहीं, बल्कि एक हजार बार कर सकते हैं।



Drowsy ©   (2016-09-20 10:04) [6]


> iop © (20.09.16 09: 06) [5]


सौ को पी लिया, फिर एक हजार को।
अब आप:

एक Tree.onDeletion ईवेंट बनाएं और उसमें एक विराम बिंदु सेट करें।
प्रक्रिया TForm1.TreeView1Deletion (प्रेषक: Tobject; नोड: TTreeNode); शुरू करना // OnDeletion - उत्पन्न किया जाता है जब प्रत्येक नोड के लिए एक नोड पेड़ हटा दिया जाता है। // "नोड" पैरामीटर में वह नोड होता है जिसे हटाया जा रहा है। // इस प्रकार, इस घटना का उपयोग करना सुविधाजनक है, उदाहरण के लिए, // नोड को हटाने से पहले, इससे जुड़े डेटा को नष्ट करें, // यदि कोई हो, तो उसकी डेटा प्रॉपर्टी आदि में निहित हैं। अंत;



iop ©   (2016-09-20 10:05) [7]

एक बार फिर पोग्रोमिस्ट्स के लिए:
जब माता-पिता बदलते हैं, तो दृश्य में कोई भी नोड नहीं हटाया जाता है।



Drowsy ©   (2016-09-20 19:53) [8]


> iop © (20.09.16 10: 05) [7]

यदि Tree.onDeletion ईवेंट को परिभाषित किया जाता है, तो जब माता-पिता बदलते हैं, तो इसे कहा जाता है। क्या आप सहमत हैं?



iop ©   (2016-09-20 20:57) [9]

जब माता-पिता बदल रहे हों
घटना को ट्रिगर किया जाता है
नोड्स हटाए नहीं गए हैं।



iop ©   (2016-09-20 21:11) [10]

और माता-पिता को बदलते समय इसे हर जगह नहीं कहा जाता है।

HE8 में, माता-पिता को बदलते समय किसी भी OnDeletion को नहीं बुलाया जाता है।

TTVExpandedEvent का उपयोग उन घटनाओं की सूचनाओं का जवाब देने के लिए किया जाता है जो ट्री व्यू कंट्रोल के नोड्स में होती हैं। यह एक है सामान्य इवेंट हैंडलर विभिन्न घटनाओं के लिए कि पेड़ के दृश्य को सूचित करें एक नोड के लिए हुआ है।

प्रेषक ट्री-व्यू नियंत्रण है जिसमें नोड है जो अधिसूचना का फ़ोकस है।

नोड वह आइटम है जो किया गया है विस्तारित, ढह, हटाए गए, या जिसके बारे में है तैयार होना.

यानी पहले के संस्करणों में, यह संभव है कि पेड़ में किसी भी छींक पर, TTVExpandedEvent प्रकार के सभी हैंडलर थोक में बुलाए गए थे, भले ही वास्तव में वहां क्या हुआ हो।



पन्ने: 1 पूरी शाखा

मंच: "शुरुआती";
वर्तमान संग्रह: 2018.11.04;
डाउनलोड करें: [xml.tar.bz2];

ऊपर





मेमोरी: 0.59 एमबी
समय: 0.014 c
2-1473336347
अन्ना
2016-09-08 15:05
2018.11.04
संग्रहीत प्रक्रियाओं की संख्या के लिए अनुरोध


2-1473182108
सुस्त
2016-09-06 20:15
2018.11.04
TTreeView पर सवाल।


2-1474206922
KropotkinGosha
2016-09-18 16:55
2018.11.04
फ़ंक्शन में कोड निष्पादित नहीं किया गया है


15-1475184602
यूरी
2016-09-30 00:30
2018.11.04
आपको जन्मदिन की शुभकामनाएं! 30 सितंबर 2016 शुक्रवार


2-1473395811
Abcdef123
2016-09-09 07:36
2018.11.04
CreateProcess का उपयोग करना। बाद में वांछित आकार कैसे दिखाएं





अफ्रीकी अल्बानियन अरबी भाषा अर्मेनियाई आज़रबाइजानी बस्क बेलारूसी बल्गेरियाई कैटलन सरलीकृत चीनी) चीनी पारंपरिक) क्रोएशियाई चेक डेनिश डच अंग्रेज़ी एस्तोनियावासी फिलिपिनो फिनिश फ्रेंच
गैलिशियन् जॉर्जियाई जर्मन यूनानी हाईटियन यहूदी हिंदी हंगरी आइसलैंड का इन्डोनेशियाई आयरिश इतालवी जापानी कोरियाई लात्वीयावासी लिथुआनियाई मेसीडोनियन मलायी मोलतिज़ नार्वेजियन
फ़ारसी पोलिश पुर्तगाली रोमानियाई रूसी सर्बियाई स्लोवाक स्लोवेनियाई स्पेनिश स्वाहिली स्वीडिश थाई तुर्की यूक्रेनी उर्दू वियतनामी वेल्श यहूदी बंगाली बोस्नियाई
सिबुआनो एस्पेरांतो गुजराती हौसा हमोंग ईग्बो जावानीस कन्नड़ खमेर लाओ लैटिन माओरी मराठी मंगोलियन नेपाली पंजाबी सोमाली तामिल तेलुगु योरूबा
ज़ुलु
Английский Французский Немецкий Итальянский Португальский Русский Испанский