Ĺadny brzuch
Witam
Chciałem zrobić w programie tak... Jest Text i TreeView z jakimiś elementami i aby dodać nowy element trzeba wybrać rodzica dla tworzonego elementu chyba, że tworzy sie nowego rodzica to wtedy nic nie będzie zaznaczone a w text dajemy opis... Czytałem o TreeView ale nie umię się w tym połapać jakoś :huh: Wiem, że jest Add i AddChild tylko jak pokazać, że chce dodać podelement do jakiegoś innego albo żę chce dodać rodzica na konkretnej pozycji. Wiadomo, że poniższe istniejące elementy trzeba przesunąć o 1 w dół, ale z tym sobie już poradze :) Ufff ale sie napisałem.. Jeśli jest łatwiejsza metoda dodawanie to bardzo proszę, przedstawiłem taką bo myśle że jest w miarę wygodna :D Z góry dziękuję za odpowiedzi...
Pobróbuj z tym:
procedure TForm1.Button1Click(Sender: TObject);
var
MyTreeNode1, MyTreeNode2: TTreeNode;
begin
with TreeView1.Items do
begin
Clear; { remove any existing nodes }
MyTreeNode1 := Add(nil, 'RootTreeNode1'); { Add a root node }
{ Add a child node to the node just added }
AddChild(MyTreeNode1,'ChildNode1');
{Add another root node}
MyTreeNode2 := Add(MyTreeNode1, 'RootTreeNode2');
{Give MyTreeNode2 to a child }
AddChild(MyTreeNode2,'ChildNode2');
{Change MyTreeNode2 to ChildNode2 }
{ and add a child node to it}
MyTreeNode2 := TreeView1.Items[3];
AddChild(MyTreeNode2,'ChildNode2a');
{Add another child to ChildNode2, after ChildNode2a }
Add(MyTreeNode2,'ChildNode2b');
{add another root node}
Add(MyTreeNode1, 'RootTreeNode3');
end;
end;
Jeszcze jedno pytanie... Zawsze domyślnie wydać tylko głównych rodziców, wszystkie podelementy są schowane. Czy można zrobić żeby zwijały się tylko poszczególne gałęzie?? Żeby np. pierwszy rodzic miał rozwinięte podelementy a drugi miał schowane, da się tak?? :huh:
nie chce mi sie teraz delphi wlaczac ale poszukaj metody o nazwie zaczynajacej sie chyba od expand :]
Jeszcze jeden problem... Chce zrobić, że informacje o elementach będą zapisywane do tablicy z rekordami (typ, nazwa, index ikony, czy jest rodzicem i takie tam). Tylko nie wiem jak pobrać index zaznaczonego elementu, bo przy dodawaniu elementu program ma sprawdzić w tablicy czy jest on "folderem" czy "elementem" no i jeśli jest elementem to nie pozwoli dodać do niego podelementu. Tylko nie wiem jak pobrać index i tu narazie STOP :) AHA jeśli jest inna możliwość zapisu TreeView do pliku to bardzo proszę, ale ten index będzie mi i tak potrzebny do innych rzeczy...
Znalazłem :D pół godziny szperałem ale jest. Ta linijeczka zwraca ogólny index elementu
Tree.Selected.AbsoluteIndex
a ta index w odniesieniu do rodzica:
Tree.Selected.Index
Uff, sie naszukałem... Pomimo wszystko dzięki za pomoc.
Nie chcę rozpoczynać nowego tematu więc piszę tutaj. Chciałbym się dowiedzieć jaka funkcja zwraca index rodzica zaznaczonego elementu. Niby jest takie coś jak parent ale jak bym tego nie użył to zawsze jest 0 :blink:
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Chciałem zrobić w programie tak... Jest Text i TreeView z jakimiś elementami i aby dodać nowy element trzeba wybrać rodzica dla tworzonego elementu chyba, że tworzy sie nowego rodzica to wtedy nic nie będzie zaznaczone a w text dajemy opis... Czytałem o TreeView ale nie umię się w tym połapać jakoś :huh: Wiem, że jest Add i AddChild tylko jak pokazać, że chce dodać podelement do jakiegoś innego albo żę chce dodać rodzica na konkretnej pozycji. Wiadomo, że poniższe istniejące elementy trzeba przesunąć o 1 w dół, ale z tym sobie już poradze :) Ufff ale sie napisałem.. Jeśli jest łatwiejsza metoda dodawanie to bardzo proszę, przedstawiłem taką bo myśle że jest w miarę wygodna :D Z góry dziękuję za odpowiedzi...
Pobróbuj z tym:
procedure TForm1.Button1Click(Sender: TObject);
var
MyTreeNode1, MyTreeNode2: TTreeNode;
begin
with TreeView1.Items do
begin
Clear; { remove any existing nodes }
MyTreeNode1 := Add(nil, 'RootTreeNode1'); { Add a root node }
{ Add a child node to the node just added }
AddChild(MyTreeNode1,'ChildNode1');
{Add another root node}
MyTreeNode2 := Add(MyTreeNode1, 'RootTreeNode2');
{Give MyTreeNode2 to a child }
AddChild(MyTreeNode2,'ChildNode2');
{Change MyTreeNode2 to ChildNode2 }
{ and add a child node to it}
MyTreeNode2 := TreeView1.Items[3];
AddChild(MyTreeNode2,'ChildNode2a');
{Add another child to ChildNode2, after ChildNode2a }
Add(MyTreeNode2,'ChildNode2b');
{add another root node}
Add(MyTreeNode1, 'RootTreeNode3');
end;
end;
Jeszcze jedno pytanie... Zawsze domyślnie wydać tylko głównych rodziców, wszystkie podelementy są schowane. Czy można zrobić żeby zwijały się tylko poszczególne gałęzie?? Żeby np. pierwszy rodzic miał rozwinięte podelementy a drugi miał schowane, da się tak?? :huh:
nie chce mi sie teraz delphi wlaczac ale poszukaj metody o nazwie zaczynajacej sie chyba od expand :]
Jeszcze jeden problem... Chce zrobić, że informacje o elementach będą zapisywane do tablicy z rekordami (typ, nazwa, index ikony, czy jest rodzicem i takie tam). Tylko nie wiem jak pobrać index zaznaczonego elementu, bo przy dodawaniu elementu program ma sprawdzić w tablicy czy jest on "folderem" czy "elementem" no i jeśli jest elementem to nie pozwoli dodać do niego podelementu. Tylko nie wiem jak pobrać index i tu narazie STOP :) AHA jeśli jest inna możliwość zapisu TreeView do pliku to bardzo proszę, ale ten index będzie mi i tak potrzebny do innych rzeczy...
Znalazłem :D pół godziny szperałem ale jest. Ta linijeczka zwraca ogólny index elementu
Tree.Selected.AbsoluteIndex
a ta index w odniesieniu do rodzica:
Tree.Selected.Index
Uff, sie naszukałem... Pomimo wszystko dzięki za pomoc.
Nie chcę rozpoczynać nowego tematu więc piszę tutaj. Chciałbym się dowiedzieć jaka funkcja zwraca index rodzica zaznaczonego elementu. Niby jest takie coś jak parent ale jak bym tego nie użył to zawsze jest 0 :blink: