Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   selektierte Items in Treeview finden? (https://www.delphipraxis.net/173923-selektierte-items-treeview-finden.html)

padawan 24. Mär 2013 16:33

selektierte Items in Treeview finden?
 
Moin Delphi-Freunde!

Vorweg: seit 2 Tagen suche ich in der OH sowie in den Delphi-Foren nach einer Lösung,
wenn ich fündig wurde, gabs ne Exception an die Backe.

So einfach wie bei ListBox/ListView ist es wohl nicht.

Das Prog soll die Ordnerstruktur meiner CDs/DVDs in der TreeV. listen,
speichern oder ausdrucken. Klappt bis hierher auch.

Aber Ordnernamen in der Treeview wie '148d6b3330f8e16a2474d0914eb1' will ich nicht
drucken. Will diese markieren(per Multiselect)und beim drucken ignorieren.

Sollte es dafür keine Lösung geben??
Im meinem Buch 'Delphi 6' wird Treeview garnicht erwähnt und was ich im inet fand,
beschert mir haufenweise Errors(Selected, Selected.AbsoluteIndex).:oops:

NEED HELP!!!

Danke Euch im Voraus!!!
Gruß Uli

Aviator 24. Mär 2013 21:57

AW: selektierte Items in Treeview finden?
 
Da du ja mit Sicherheit die Items im Tree durchlaufen musst um sie drucken zu können, solltest du einfach eine kleine Abfrage einbauen, ob sie ausgewählt sind oder nicht.

Hier mal ein kleines Codebeispiel, dass dir alle selektierten Items im Tree ausgibt:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
I : Integer;
begin
 for I := 0 to TreeView1.Items.Count - 1 do begin
   if TreeView1.Items.Item[I].Selected then ShowMessage(TreeView1.Items.Item[i].Text);
 end;
end;

Ich denke, das kannst du dann auf dein Vorhaben umbauen.

Furtbichler 25. Mär 2013 09:38

AW: selektierte Items in Treeview finden?
 
Ich würde zum Ausdrucken eine Kopie erstellen und dann die markierten Einträge entfernen.

Delphi-Quellcode:
Procedure CopyTreeViewUnselectedItems (aSource, aDest : TTreeView);
var
  i : Integer;

begin
  aDest.items.assign(aSource.Items);
  aDest.StateImages := aSource.StateImages;
  aDest.Images := aSource.Images;
 
  for i := aDest.Items.Count-1 downto 0  do
    if aSource.Items[i].Selected then // Selected wird nicht mitkopiert, daher im Original prüfen
      aDest.Items[i].Delete;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz