Duplicity v TreeView [Delphi]

Programovacie jazyky, rady, poradňa...
paralen
Light Star
Light Star
Príspevky: 267
Registrovaný: 02 máj 2006, 15:15

Duplicity v TreeView [Delphi]

Príspevok od používateľa paralen »

Zdravim
Potreboval by som pred kazdym vkladanim do Treeview overit ci uz sa tam nahodou ten zapis nenachadza a ak ano nech ho tam samozrejme nevlozi.
Ako na to ? Skusal som nieco pomocoou getNextSibling a getPrevSibling , ale neuspesne

Vdaka za rady
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

ČO presne si s tými getNextSibling a getPrevSibling skúšal?
paralen
Light Star
Light Star
Príspevky: 267
Registrovaný: 02 máj 2006, 15:15

Príspevok od používateľa paralen »

nieco taketo

Kód: Vybrať všetko

   if poloziek<>0 then
      begin
      i:=1;
      treeview1.Items[i].Selected:=true;
      repeat
         //treeview1.Items[i].getNextSibling; //tuto som chcel priradit tomu treeview, ale hlasilo ze nemozem to priradit
         inc(i);
      until (treeview1.Items=nil);
Ale celkovo to je zle :? trebalo by vymysliet nejaky iny algoritmus .
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Veď si tam nič nekontroloval. :) getNextSibling vráti nasledujúci prvok a tam si potom mal zistiť, či nie je rovnaký, ako ten, čo chceš vložiť.

Príklad, ako sa to robí nájdeš napr. tu (ak je tam tých prvkov veľa, pravdepodobne by bolo lepšie urobiť virtual treeview).
paralen
Light Star
Light Star
Príspevky: 267
Registrovaný: 02 máj 2006, 15:15

Príspevok od používateľa paralen »

Viem ze som tam nic nekontroloval, to by nebol problem porovnat to, neslo mi to dalej preto som to nedokoncil
Tu stranku som videl, ale nejak to je pre moj pripad zbytocne komplikovane.

Ale vdaka za rady :wink:
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Zistenie, či tam je rovnaký prvok ale oveľa jednoduchšie neurobíš. Mohol by si to vždy prehľadávať od prvého prvku (a nie od vybraného) a tým by si ušetril v tej funkcii IsDuplicateName jeden cyklus.
Napísať odpoveď