Salvestage rohkem kohandatud andmeid puusõlme Delphisse

TTreeView Delphi komponent kuvab hierarhilise üksuste loendi - puusõlmed. Sõlm esitatakse sõlme teksti ja valikulise pildi abil. Iga puuvaate sõlm on TTreeNode klassi eksemplar.

Kuigi saate puuvaadet üksuste abil kavandamise ajal täita, kasutades nuppu TreeView üksuste redigeerija, enamikul juhtudel täidaksite puuvaate töö ajal - olenevalt sellest, mis teie rakenduses on.

TreeView üksuste redigeerija näitab, et seal on ainult käputäis teavet, mida saate sõlme külge kinnitada: tekst ja mõned pildiindeksid (normaalse oleku jaoks laiendatud, valitud ja sarnased).

Sisuliselt on puuvaate komponenti lihtne programmeerida. Uute sõlmede lisamiseks puusse ja nende hierarhia seadmiseks on paar meetodit.

Puuvaates (nimega "TreeView1") saate lisada 10 sõlme. Pange tähele, et atribuudid Üksused võimaldavad juurdepääsu kõigile puu sõlmedele. AddChild lisab puuvaatesse uue sõlme. Esimene parameeter on põhisõlm (hierarhia ülesehitamiseks) ja teine ​​parameeter on sõlme tekst.

AddChild tagastab äsja lisatud TTreeNode. Ülalpool koodinäidis, lisatakse kõik 10 sõlme juursõlmedena (neil pole vanema sõlme).

instagram viewer

Mis tahes keerukamates olukordades soovite, et teie sõlmed kannaksid rohkem teavet - eelistatavalt omaksid nad mõnda eriväärtust (omadust), mis on konkreetsed teie arendatavale projektile.

Oletagem, et soovite kuvada andmebaasis kliendi tellimuste-üksuste andmeid. Igal kliendil võib olla rohkem tellimusi ja iga tellimus koosneb rohkemdest esemetest. See on hierarhiline seos, mida saab puuvaates kuvada:

Teie andmebaasis oleks lisateavet iga tellimuse ja iga üksuse kohta. Puuvaates kuvatakse (kirjutuskaitstud) praegune olek - ja soovite näha valitud tellimuse tellimuse (või isegi üksuse) üksikasju.

Kui kasutaja valib sõlme "Tellimus_1_1", soovite tellimuse üksikasju (kogusumma, kuupäev jne) kasutajale kuvada.

Sel ajal saate andmebaasist vajalikke andmeid otsida, kuid õigete andmete haaramiseks peaksite teadma valitud tellimuse kordumatut identifikaatorit (ütleme täisarvu).

Vajame viisi selle tellimuse identifikaatori salvestamiseks koos sõlmega, kuid me ei saa atribuuti Tekst kasutada. Kohandatud väärtus, mida peame igasse sõlme salvestama, on täisarv (lihtsalt näide).

Kui selline olukord juhtub, võib teil tekkida kiusatus otsida silti atribuuti (paljudel Delphi komponentidel on), kuid TTreeNode klass ei paljasta sildi omadust.

Lisage kohandatud andmed puusõlmedesse: puuNode. Andmete omand

Puusõlme omadus Data võimaldab teil seostada oma kohandatud andmed puusõlmega. Andmed on a osuti ja osutab objektidele ja kirjetele. XML-i (RSS-voo) andmete kuvamine puuvaates näitab, kuidas a kirje tüüp muutuja puusõlme andmeomandisse.

Paljud üksustüüpi klassid paljastavad andmete atribuudi - saate seda kasutada koos üksusega mis tahes objekti salvestamiseks. Näiteks võib tuua TListView komponendi TListItem. Siin on kuidas lisada andmeid atribuudile Data.

Kohandatud andmete lisamine puusõlmedesse: puuvaade. LooNodeClass

Kui te ei soovi TTreeNode atribuuti Data kasutada, vaid soovite pigem oma TreeNode laiendada mõne omadusega, on Delphil ka lahendus.

Ütle, et tahad seda teha

Siit saate teada, kuidas laiendada standardset TTreeNode'i mõne oma omadusega:

  1. Looge oma TMyTreeNode, laiendades TTreeNode.
  2. Lisage see stringi atribuut MyProperty.
  3. Käsitsege puuvaates OnCreateNodeClass, et määratleda oma sõlme klass.
  4. Paljastage vormitasandil midagi sellist nagu TreeView1_SelectedNode. See oleks TMyTreeNode tüüpi.
  5. Puudutage puuvaate OnChange'i, et kirjutada valitud sõlme väärtus SelectedNode'i.
  6. Uue kohandatud väärtuse lugemiseks või kirjutamiseks kasutage TreeView1_Selected.myProperty.

Siin on täielik lähtekood (vormil TButton: "Button1" ja TTreeView: "TreeView1"):

Seekord ei kasutata TTreeNode klassi omadust Data. Pigem laiendate TTreeNode klassi, et teil oleks oma puusõlme versioon: TMyTreeNode.

Puuvaate sündmust OnCreateNodeClass kasutades loote tavalise TTreenode klassi asemel oma kohandatud klassi sõlme.