Autor Téma: VirtualStringTree - pridanie uzla do výberu  (Přečteno 627 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4114
  • Karma: 36
    • Verze Delphi: XE7 professional
VirtualStringTree - pridanie uzla do výberu
« kdy: 08-02-2019, 11:12:14 »
Podľa návodu si nie som istý či postačuje opakovane použiť
Kód: Delphi [Vybrat]
  1.  TBaseVirtualTree.Selected[MyNode] := True
a všetky uzly budú vo výbere, alebo musím použiť
Kód: Delphi [Vybrat]
  1. TBaseVirtualTree.AddToSelection(MyNode)
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Delfin

  • Padawan
  • ******
  • Příspěvků: 1722
  • Karma: 66
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:VirtualStringTree - pridanie uzla do výberu
« Odpověď #1 kdy: 08-02-2019, 11:41:13 »
Pro vyber vsech uzlu pouzij metodu SelectAll. Pro vyber specifickych pak radeji property Selected, protoze jeji setter zohlednuje i vyber sloupcu.
« Poslední změna: 08-02-2019, 12:05:18 od Delfin »
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4114
  • Karma: 36
    • Verze Delphi: XE7 professional
Re:VirtualStringTree - pridanie uzla do výberu
« Odpověď #2 kdy: 08-02-2019, 13:02:22 »
Ďakujem. V tomto prípade stĺpce nemám.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Delfin

  • Padawan
  • ******
  • Příspěvků: 1722
  • Karma: 66
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:VirtualStringTree - pridanie uzla do výberu
« Odpověď #3 kdy: 08-02-2019, 17:51:39 »
Nevim, jdes si asi svou cestou. Nicmene v uvodu jsi napsal "nie som istý či postačuje opakovane použiť...a všetky uzly budú vo výbere". No pro pripad vyberu vsech vetvi existuje metoda SelectAll. Pro vyber specifickych radeji property Selected (byt prave ted nema Tvuj strom vice sloupcu a neresis jejich vyber; jde o pripadne budouci rozsireni). Zaroven nezapomen, ze pokud budes vybirat jen specificke vetve, je vhodne strom pro upravy uzamknout.
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4114
  • Karma: 36
    • Verze Delphi: XE7 professional
Re:VirtualStringTree - pridanie uzla do výberu
« Odpověď #4 kdy: 08-02-2019, 19:54:37 »
Čo riešim. Buď preťahujem uzly z ľavého stromu do pravého, alebo v rámci pravého. V druhom prípade by som mohol použiť Move.
Ale ja tieto zmeny potrebujem zapísať do DB.
Užívateľom vybraný zoznam uzlov nie je problém. Ja si v cykle (vst.AddChilde...) robím zoznam nových uzlov v pravom strome. Ten chcem použiť na ich výmaz pre prípad, ak sa akcia s DB nepodarí. To som doteraz nemal riešené. Síce nepredpokladám, že by sa s DB dobabralo, lebo sa jedná o lokálny Access s jediným prístupom.
Hm, tak sa mi zdá, že si ten presun v rámci stromu musím ešte poriadne rozobrať :)
Ešte prikladám obrázok pre lepšiu predstavu.
Uzly môžem ťahať aj z pravého stromu na ľavý.
« Poslední změna: 08-02-2019, 20:03:36 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4114
  • Karma: 36
    • Verze Delphi: XE7 professional
Re:VirtualStringTree - pridanie uzla do výberu
« Odpověď #5 kdy: 08-02-2019, 20:39:58 »
Hm, asi obrátim garde. Najprv urobím zápis do DB a potom si môžem s uzlami robiť čo chcem. Nebudem museť riešiť návrat späť. Pri presune v rámci jedného stromu by so musel mať dva zoznamy uzlov. To je pre mňa problém.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Delfin

  • Padawan
  • ******
  • Příspěvků: 1722
  • Karma: 66
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:VirtualStringTree - pridanie uzla do výberu
« Odpověď #6 kdy: 09-02-2019, 15:35:57 »
Hm, asi obrátim garde. Najprv urobím zápis do DB a potom si môžem s uzlami robiť čo chcem. Nebudem museť riešiť návrat späť. Pri presune v rámci jedného stromu by so musel mať dva zoznamy uzlov. To je pre mňa problém.

Aha :) Takze uzivatel presune vybrane vetve, Ty je zkopirujes do jineho stromu a ze zdrojoveho je odstranis. Pak zapises do DB a v pripade selhani je z ciloveho zkopirujes zpet do zdrojoveho (s tim ze je pak pridas do vyberu pomoci AddToSelection) a z ciloveho odstranis. V podstate "rollback drag&drop".

Pokud jsem scenar uhodl, volil bych stejnou cestu. Tedy prvne provedl zapis, a az (a pouze) v pripade uspechu vetve ze zdroje do cile presunul.
« Poslední změna: 09-02-2019, 15:49:03 od Delfin »
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4114
  • Karma: 36
    • Verze Delphi: XE7 professional
Re:VirtualStringTree - pridanie uzla do výberu
« Odpověď #7 kdy: 09-02-2019, 18:07:34 »
A ako krásne sa mi vyčistil kód. Dokonca mu aj rozumiem :)
Ale nebyť tej diskusie tu, tak by som na to obrátenie postupu neprišiel. Je to jediné miesto kde si o problémoch môžem pokecať. Keby som mal kancelárii niekoho na pokec, tak by som tu polovicu príspevkov ani nemal. Ani by sa programovaniu nemusel až tak rozumieť.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.