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/)
-   -   Delphi Datei in Shelllistview darstellen (https://www.delphipraxis.net/126169-datei-shelllistview-darstellen.html)

Thomas F 19. Dez 2008 11:42


Datei in Shelllistview darstellen
 
Hallo,

ich möchte mit Opendialog eine Datei auswählen,
genau dieselbe Datei (nicht das ganze Verzeichnis) soll dann in einem
Shelllistview (falls nicht möglich könnte ich auch ein normales Listview nehmen)
mit Icon dargestellt werden. :gruebel:
Kann mir jemand helfen, wie das geht ???

ich hab das so probiert , aber dann steht immer : 'der linken Seite kann nichts zugewiesen werden'

Delphi-Quellcode:
ShellListView1.Folders[ShellListView1.ItemIndex].PathName := Opendialog1.filename;

gmc616 19. Dez 2008 14:39

Re: Datei in Shelllistview darstellen
 
Vielleicht so?
Delphi-Quellcode:
ShellListView1.Root := ExtractFilePath(Opendialog1.Filename);
Damit wirklich _nur_die_eine_gewählte_ Datei anzeigt wird, musst du im OnAddFolder-Event nach dem Dateinamen filtern.
z.B. so:
Delphi-Quellcode:
procedure TForm1.ShellListView1AddFolder(Sender: TObject;
  AFolder: TShellFolder; var CanAdd: Boolean);
begin
  if CompareText (AFolder.DisplayName, ExtractFileName (OpenDialog1.FileName)) = 0 then
    CanAdd := true
  else
    CanAdd := false;
end;

Thomas F 19. Dez 2008 16:37

Re: Datei in Shelllistview darstellen
 
Danke

Funktioniert, aber noch nicht ganz.
Die Dateiendung muß noch weg, dann gehts......

Delphi-Quellcode:
procedure TForm6.ShellListView1AddFolder(Sender: TObject; AFolder: TShellFolder;
  var CanAdd: Boolean);
  var Dateiname:String;
begin
Dateiname:= ChangeFileExt(ExtractFilename (OpenDialog1.FileName), '');
if CompareText (AFolder.DisplayName,Dateiname) = 0 then
    CanAdd := true
  else
    CanAdd := false;

end;

DeddyH 19. Dez 2008 16:41

Re: Datei in Shelllistview darstellen
 
Und etwas kürzer dann:
Delphi-Quellcode:
procedure TForm6.ShellListView1AddFolder(Sender: TObject; AFolder: TShellFolder;
  var CanAdd: Boolean);
begin
  CanAdd := AnsiSameText(AFolder.DisplayName,ChangeFileExt(ExtractFilename (OpenDialog1.FileName), ''));
end;

Thomas F 19. Dez 2008 20:21

Re: Datei in Shelllistview darstellen
 
Zitat:

Zitat von DeddyH
Und etwas kürzer dann:
Delphi-Quellcode:
procedure TForm6.ShellListView1AddFolder(Sender: TObject; AFolder: TShellFolder;
  var CanAdd: Boolean);
begin
  CanAdd := AnsiSameText(AFolder.DisplayName,ChangeFileExt(ExtractFilename (OpenDialog1.FileName), ''));
end;

....ich habs ausprobiert,geht aber nicht :gruebel:

DeddyH 19. Dez 2008 20:54

Re: Datei in Shelllistview darstellen
 
Definiere "geht nicht".

Thomas F 20. Dez 2008 06:02

Re: Datei in Shelllistview darstellen
 
Zitat:

Zitat von DeddyH
Definiere "geht nicht".

......zeigt keine Datei an

DeddyH 20. Dez 2008 09:30

Re: Datei in Shelllistview darstellen
 
Komisch, ich mache doch im Prinzip auch nichts anderes als der andere Code.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:59 Uhr.

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