Delphi-PRAXiS
Seite 2 von 3     12 3      

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/)
-   -   Delphi Fragen zu TShellListView und TShellTreeView (https://www.delphipraxis.net/7759-fragen-zu-tshelllistview-und-tshelltreeview.html)

EWeiss 3. Okt 2006 15:23

Re: Fragen zu TShellListView und TShellTreeView
 
Zitat:

Zitat von Moyyer
Leider kenne ich mit Nodes noch nicht so aus. Langsam bin ich am verzweifeln :evil: :twisted:
das muss doch irgendwie funktionieren...

Habe die VirtualShellTools installiert und benutze diese.

Es gibt eine Prozedure:

Delphi-Quellcode:
VirtualShellTreeView1.Selected[Node: PVirtualNode]: Boolean;
welche ein node markiert, nur weiß ich nicht, was ich in "node" eintragen soll.

Node ist die Zeile welche du selectieren kannst .
Quasi dieser welche den Namen deiner Datei anzeigt.


Delphi-Quellcode:
Var
nNode : PVirtualNode;

Begin
  // schau mal ob die node über ein ADD im anhang verfügt.
  // Damit kannst du dann eingelesene Namen zuweisen.
  For i := 0 to 10 do
    VirtualShellTreeView1.node.Add i;
End;
Ohne gewähr .. hab mir das Teil nicht angesehen.
Für i muss natürlich ein wert angegeben werden string Array oder was auch immer.

gruß

EWeiss 3. Okt 2006 15:31

Re: Fragen zu TShellListView und TShellTreeView
 
Ok habe was gefunden!

Das wird dir helfen die sache besser zu verstehen!
In Deutsch
http://www.dsdt.info/tutorials/virtualtreeview/

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Node: PVirtualNode;
begin
  Node:=VST.AddChild(nil);
  VST.AddChild(Node);
end;
Gruß

Moyyer 3. Okt 2006 16:26

Re: Fragen zu TShellListView und TShellTreeView
 
Liste der Anhänge anzeigen (Anzahl: 1)
Es bessert sich langsam alles.

Deine Hilfe ist erstmal super. DANKE

Habe bis jetzt geschafft im VirtualTreeView einen Node mit Selected zu markieren. Nur soll er das eigentlich im VirualListView machen. Auf jeden Fall sind das dort auch nodes, den mit addnode fügt er ein node hinzu.

Leider findet er die Nodes im VirtualListview noch nicht. Bei VirtualTreeView muss ich den ganzen Pfad angeben: z.b: C:\Windows damit dieser markiert wird. Hast du eine Ahnung was man bei VirtualListview als Pfad angeben muss?

Hab dir mal zum besseren Verständnis ein Bild angehangen

EWeiss 3. Okt 2006 16:37

Re: Fragen zu TShellListView und TShellTreeView
 
Zitat:

Zitat von Moyyer
Es bessert sich langsam alles.

Deine Hilfe ist erstmal super. DANKE

Habe bis jetzt geschafft im VirtualTreeView einen Node mit Selected zu markieren. Nur soll er das eigentlich im VirualListView machen. Auf jeden Fall sind das dort auch nodes, den mit addnode fügt er ein node hinzu.

Leider findet er die Nodes im VirtualListview noch nicht. Bei VirtualTreeView muss ich den ganzen Pfad angeben: z.b: C:\Windows damit dieser markiert wird. Hast du eine Ahnung was man bei VirtualListview als Pfad angeben muss?

Hab dir mal zum besseren Verständnis ein Bild angehangen

Ja es tut sich ja schon mal was ;)

Hast du dir das 11 Seitige Tutorial oben verlinkt mal angeschaut!
Da ist alles Super und ausführlich beschrieben.

Gruß

EWeiss 3. Okt 2006 16:39

Re: Fragen zu TShellListView und TShellTreeView
 
Zitat:

Zitat von Moyyer
Es bessert sich langsam alles.

Deine Hilfe ist erstmal super. DANKE

Habe bis jetzt geschafft im VirtualTreeView einen Node mit Selected zu markieren. Nur soll er das eigentlich im VirualListView machen. Auf jeden Fall sind das dort auch nodes, den mit addnode fügt er ein node hinzu.

Leider findet er die Nodes im VirtualListview noch nicht. Bei VirtualTreeView muss ich den ganzen Pfad angeben: z.b: C:\Windows damit dieser markiert wird. Hast du eine Ahnung was man bei VirtualListview als Pfad angeben muss?

Hab dir mal zum besseren Verständnis ein Bild angehangen

Ja es tut sich ja schon mal was ;)

Hast du dir das 11 Seitige Tutorial oben verlinkt mal angeschaut!
Da ist alles Super und ausführlich beschrieben.

Gruß

Moyyer 3. Okt 2006 17:05

Re: Fragen zu TShellListView und TShellTreeView
 
ja hab mir das tutorial angeschaut.

aber immoment häng ich dran fest, das ich (immernoch) nicht weiß, wie ich aus der virtuallistview den dateinamen (in form von string) auslesen kann.
Die Prozedur GetNodeData liefert mir einen Pointer zurück. K.a. was ich damit anfangen soll

EWeiss 3. Okt 2006 17:12

Re: Fragen zu TShellListView und TShellTreeView
 
Zitat:

Zitat von Moyyer
ja hab mir das tutorial angeschaut.

aber immoment häng ich dran fest, das ich (immernoch) nicht weiß, wie ich aus der virtuallistview den dateinamen (in form von string) auslesen kann.
Die Prozedur GetNodeData liefert mir einen Pointer zurück. K.a. was ich damit anfangen soll

Dieser enthält die information der Node welche du aufgerufen hast.
Dies können der string , Key, index, oder was auch immer, in der node enthalten ist sein.

Kann das Control nicht installieren mülle mir dann alles hier zu.

gruß

EDIT: Schick mal was code vielleicht können dann andere helfen die das control installiert haben
Leider haben diese keine Glaskugel.

Moyyer 3. Okt 2006 18:17

Re: Fragen zu TShellListView und TShellTreeView
 
hatte gedacht, dass man mit den "fortschrittlichen" komponenten wenigstens (relativ einfach) die Dateinamen auslesen und diese (Un)Selektieren kann, vor allem wenns eine Dateibrowserkomponente ist.
Aber umsomehr ich mich damit beschäftige umso komplizierter wird es.

Und da anscheinend niemand solche komponenten benutzt, scheinen sie auch net gut zu sein.

Deswegen lass ich es lieber und kehre wieder zu den Delphi-Mitgeliferten-Komponenten zurück.

Habe es immerhin soweit geschafft, das er nur die mp3s markiert, nur beim Beenden des Programms kamen einige schwerwiegende Fehler ohne Zeilenangabe im Code, die nicht "normal" sind

Delphi-Quellcode:
var i, all: integer;
  Node: pvirtualnode;
  s: Tstrings;
begin
  s := Tstringlist.Create;
  vlistview1.SelectAll(false);
  s := vlistview1.SelectedFiles;
  all := VListview1.SelectedCount;
  Node := vlistview1.GetFirstSelected;
  for i := 1 to all do
  begin
    if ansilowercase(extractfileext(s.Strings[i-1])) <> '.mp3' then
    begin
      vlistview1.Selected[node] := false;
      Node := vlistview1.GetNextSelected(Node);
    end
    else
      if i <> all then node := vlistview1.GetNextSelected(Node);
  end;
  s.Free;
end;
falls jemand Verbesserungsvorschläge hat, kann ich es ja mal probieren.

litsa 3. Okt 2006 19:08

Re: Fragen zu TShellListView und TShellTreeView
 
Zitat:

aber immoment häng ich dran fest, das ich (immernoch) nicht weiß, wie ich aus der virtuallistview den dateinamen (in form von string) auslesen kann.
Den Dateinamen bekommst du so:
Delphi-Quellcode:
VirtualExplorerListview1.SelectedPath
..hab jetzt nicht ganz mitgekriegt was du genau machen möchtest!

Moyyer 3. Okt 2006 19:17

Re: Fragen zu TShellListView und TShellTreeView
 
ich möchte das nur dateien eines bestimmten dateityps z.b. mp3 markiert sind, keine anderen


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:29 Uhr.
Seite 2 von 3     12 3      

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