Avatar billede jackass- Nybegynder
17. december 2003 - 11:57 Der er 10 kommentarer og
1 løsning

Get selected treenode i TTreeview

Heys..

Jeg har en TTreeview kaldet TreeView1 samt en knap Button1.

I TreeView'en er der X antal root-nodes samt en masse child-nodes under hver root.

Jeg skal selecte en childnode og trykke på Button1 og så skal den pågældende childnodes caption returneres.

Her er lige lidt slam pseudo kode som gerne skulle beskrive behovet:


procedure TForm1.Button5Click(Sender: TObject);
var selnode:string;
begin
  if (TreeView1.Item.Selected == TRUE) then
    selnode := TreeView1.Item.Selected.GetText();
end


Noget i den stil hehe.. er der en der lige kan komme med det magiske svar? :)
Avatar billede dkn Nybegynder
17. december 2003 - 12:18 #1
TreeView1.Selected.Text ?
Avatar billede Slettet bruger
17. december 2003 - 12:19 #2
Tror du kan gøre sådan:

If ListView1.Selected = nil then exit;
selnode := ListView1.Selected.Caption;
Avatar billede Slettet bruger
17. december 2003 - 12:20 #3
Avatar billede jackass- Nybegynder
17. december 2003 - 13:22 #4
procedure TForm1.Button1Click(Sender: TObject);
var
  pick : TTreeNode;
begin
  If not (TreeView1.Selected = nil) then
    begin
      ip := TreeView1.Selected.Text;
      Ping1.DnsLookup(ip);
      TreeView1.Deselect(TreeView1.Selected);  //DEN HER!
      Exit;
    end
    else
      begin
        showmessage('Nu er den de-selected!');
      end;

  ...........

Tak, der var nice information på det link .. Men hvordan deselecter jeg den node igen?

TreeView1.Deselect(TreeView1.Selected); deselecter den godtnok så den ikke er den blå farve mere - men der er stadig den "ramme" omkring, så den trigger ikke showmessage('Nu er den de-selected!');
Avatar billede Slettet bruger
17. december 2003 - 14:00 #5
Prøv at sætte ListView1.Selected.Index til -1 en.
Avatar billede Slettet bruger
17. december 2003 - 14:50 #6
Nej... det kan man vist ikke.
Avatar billede jackass- Nybegynder
17. december 2003 - 14:50 #7
Det er jo en TreeView - der findes Selected.Index ikke?
Avatar billede Slettet bruger
17. december 2003 - 15:00 #8
Ja, fandt jeg ud af, da jeg prøvede det i delphi :)
Avatar billede jackass- Nybegynder
17. december 2003 - 17:28 #9
Har du/I et løsningsforslag til at deselecte den node ordenligt? :)
Avatar billede Slettet bruger
17. december 2003 - 22:17 #10
Så fandt jeg vist ud af det.. Du sætter bare TreeView1.Selected til nil :)

F.eks.:

procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
    TTreeView(Sender).Selected := nil;
end;
Avatar billede jackass- Nybegynder
18. december 2003 - 08:04 #11
procedure TForm1.Button1Click(Sender: TObject);
begin
  TreeView1.Selected := nil;
end

Og det spiller 100% .. takker! :P
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester