Thema: Delphi Treeview: Pfad

Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Treeview: Pfad

  Alt 14. Sep 2003, 10:58
So und hier die praktische Umsetzung:
Delphi-Quellcode:
////////////////////////////////////////////////////////////////////////////////
// Pfad eines Treeview-Knotens holen, ausgehen von einem selektierten Knoten

function GetPath(Node: TTreeNode): String;
var
  s1, s2: String;
begin
  // so lange es Knoten gibt
  while Node <> nil do
  begin
    // Text holen
    s2 := Node.Text;
    // String zusammenbauen
    s1 := s2+ '\'+ s1;
    // einen Knoten nach oben gehen
    Node := Node.Parent;
  end;
  // Zurückgeben
  result := s1;
end;

procedure TForm1.TreeView1Click(Sender: TObject);
var
  AnItem: TTreeNode;
  ScreenPt, ClientPt: TPoint;
  HT: THitTests;
begin
  // Wo wurde geklickt
  GetCursorPos(ScreenPt);
  // umrechen von Screen-Koordinaten nach Client-Koordinaten
  ClientPt := ScreenToClient(ScreenPt);
  // Sicherstellen, dass was selektiert wurde
  if TreeView1.Selected = nil then Exit;
  // Hittest machen
  HT := TreeView1.GetHitTestInfoAt(ClientPt.X, ClientPt.Y);
  // Knoten holen
  AnItem := TreeView1.GetNodeAt(ClientPt.X, ClientPt.Y);
  // Hittest prüfen
  if (HT - [htOnItem, htOnIcon, htNowhere, htOnIndent] <> HT) then
  begin
    // Pfad holen
    Caption := GetPath(AnItem);
  end;
end;
Was war daran jetzt so schwer? 10 Minuten Arbeit und selbst habe ich es auch noch nie gemacht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat