Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: In einem TreeView einen Knoten erstellen

  Alt 2. Nov 2019, 19:13
Hi Redeemer

Delphi-Quellcode:
procedure TOpenFileFrame.AddNewNode(ParentNode: TTreeNode; const aCaption,
  aRealName: string; aIsdirectory: Boolean);
  var Node: TTreeNode; NameRec: PNameRec;
      Lextension: String;
begin
  Node := TVFilesExplorer.Items.AddChild(ParentNode, aCaption);
  if aIsdirectory then
    begin
      Node.ImageIndex := 1;
      Node.SelectedIndex := 1;
      (* Dummy-Knoten anlegen *)         // 'alle Dateien', '.pdf', '.Docx', '.bmp', '.nef', '.jpg', '.png
      TVFilesExplorer.Items.AddChild(Node, 'dummy');
    end
  else
    begin
      Node.ImageIndex := 2;
      Node.SelectedIndex := 2;
      FPathlist.Add(aRealName);
      Lextension := ExtractFileExt(aRealName); // Hier wird die Übereinstimmung mit dem aktuellen
      Node.Enabled := False; // Datefilter (Dateiendung) festgestellt. Wenn nein,
      if (FFileType = Lextension) then // ist der eingefügte Node nicht Enabled
        Node.Enabled := true;
      if (FFileType = 'alle Dateien') then
        Node.Enabled := true;
    end;
  FReportlist.Add('procedure TOpenFileFrame.AddNewNode');
  FReportlist.Add('Node.Text := ' + Node.Text);
  New(NameRec);
  NameRec^.RealName := aRealName;
  NameRec^.Caption := aCaption;
  NameRec^.IsDirectory := aIsdirectory;
  Node.Data := NameRec;
end;
Mit dieser Methode werden die von der TFilesearcher-Komponente gefundenen Ordner und Dateien dem Treeview hinzugefügt. Und danach beabsichtige ich, mich zu orientieren.
Ich hab mir auch schon überlegt, in meiner eigenen Methode lediglich das neue Verzeichnis zuu erstellen uund danach eine neue Suche anzustossen.
Etwas müsste ich mir allerdings hier einfallen lassen, da bestimmte Verzeichnisse spezielle Icons erhalten sollen - aktuell soll ein Verzeichnis für SQLite-DBs mit eigenem Icon erstellt werden. Ausserdem sollen Verzeichnisse dieser Art jeweils an erster Stelle unter dem entsprechenden Parent angezeigt werden, wofür sich ja 'AddChildFirst' anbietet. Ob das dann auch so bleibt, wenn Knoten mal erstellt ist, weiss ich nicht.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat