ich habe jetzt fast 2 Wochen nach ner Lösung gesucht aber keine gefunden.
Mein Problem ich verwende Shelllistview um Dateien anzuzeigen.
Nur fehlen mir die Symbole weiß vielleicht einer von euch wie ich das hin bekomme.
Danke schonmal im Vorhaus

Nach was hast du denn gesucht?DoorPro hat geschrieben:ich habe jetzt fast 2 Wochen nach ner Lösung gesucht aber keine gefunden.
Hält der Compiler an und sagt das er shelllistview nicht finden kann.with ShellListView do
Dann überlege mal ganz, ganz, ganz scharf woran das wohl liegen könnte.Hält der Compiler an und sagt das er shelllistview nicht finden kann.
Nun wenn du ShellListview1 meinst weiß ich aber das geht leider auch nicht.DiBo33 hat geschrieben:Dann überlege mal ganz, ganz, ganz scharf woran das wohl liegen könnte.Hält der Compiler an und sagt das er shelllistview nicht finden kann.
Wie heißt denn dein TShellListview?
Code: Alles auswählen
procedure LV_InsertFiles(strPath: string; ListView: TListView; ImageList: TImageList);
var
i: Integer;
Icon: TIcon;
SearchRec: TSearchRec;
ListItem: TListItem;
FileInfo: SHFILEINFO;
begin
// Create a temporary TIcon
Icon := TIcon.Create;
ListView.Items.BeginUpdate;
try
// search for the first file
i := FindFirst(strPath + '*.*', faAnyFile, SearchRec);
while i = 0 do
begin
with ListView do
begin
// On directories and volumes
if ((SearchRec.Attr and FaDirectory <> FaDirectory) and
(SearchRec.Attr and FaVolumeId <> FaVolumeID)) then
begin
ListItem := ListView.Items.Add;
//Get The DisplayName
SHGetFileInfo(PChar(strPath + SearchRec.Name), 0, FileInfo,
SizeOf(FileInfo), SHGFI_DISPLAYNAME);
Listitem.Caption := FileInfo.szDisplayName;
// Get The TypeName
SHGetFileInfo(PChar(strPath + SearchRec.Name), 0, FileInfo,
SizeOf(FileInfo), SHGFI_TYPENAME);
ListItem.SubItems.Add(FileInfo.szTypeName);
//Get The Icon That Represents The File
SHGetFileInfo(PChar(strPath + SearchRec.Name), 0, FileInfo,
SizeOf(FileInfo), SHGFI_ICON or SHGFI_SMALLICON);
icon.Handle := FileInfo.hIcon;
ListItem.ImageIndex := ImageList.AddIcon(Icon);
// Destroy the Icon
DestroyIcon(FileInfo.hIcon);
end;
end;
i := FindNext(SearchRec);
end;
finally
Icon.Free;
ListView.Items.EndUpdate;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
// Assign a Imagelist to the ListView
ListView1.SmallImages := ImageList1;
// Show Listview in Report Style and add 2 Columns
ListView1.ViewStyle := vsReport;
ListView1.Columns.Add;
ListView1.Columns.Add;
LV_InsertFiles('C:\Windows\', ListView1, ImageList1);
end;
Oh schön für dichDiBo33 hat geschrieben:Bitte den Quellcode entsprechend formatieren> So nicht wundern das ist der Orginal code von: http://www.swissdelphicenter.ch/de/showcode.php?id=421" onclick="window.open(this.href);return false;Code: Alles auswählen
...
Klasse und wir sollen jetzt anhand diesen Code den Fehler in deinem Code finden?
Sorry aber bei der Hellseherprüfung falle ich immer durch.
Wenn du fremden Quelltext verwendest (zum Beispiel von swissdelphicenter.ch), dann musst du den natürlich an deinen eigenen vorhandenen Quelltext anpassen. Daher versuche bitte zuerst den Quelltext selbst anzupassen, da bei diesem Schritt dir niemand helfen kann, der deinen eigenen Quelltext nicht kennt. Von daher halte ich die Forderung, deinen eigenen Quelltext hier zu posten als gerechtfertigt.DoorPro hat geschrieben:Oh schön für dich
Ich persönlich finde diese Antwort von dir etwas unfreundlich!
Außerdem denke ich wohl das man sich immer gegenseitig Helfen sollte.
Naja, überlege mal.Ich persönlich finde diese Antwort von dir etwas unfreundlich!
Außerdem denke ich wohl das man sich immer gegenseitig Helfen sollte.
Code: Alles auswählen
procedure LV_InsertFiles(strPath: string; ShellListView1: TShellListView; ImageList: TImageList);
var
i: Integer;
Icon: TIcon;
SearchRec: TSearchRec;
ListItem: TListItem;
FileInfo: SHFILEINFO;
begin
// Create a temporary TIcon
Icon := TIcon.Create;
ShellListView1.Items.BeginUpdate;
try
// search for the first file
i := FindFirst(strPath + '*.*', faAnyFile, SearchRec);
while i = 0 do
begin
with ShellListView1 do
begin
// On directories and volumes
if ((SearchRec.Attr and FaDirectory <> FaDirectory) and
(SearchRec.Attr and FaVolumeId <> FaVolumeID)) then
begin
ListItem := ShellListView1.Items.Add;
//Get The Icon That Represents The File
SHGetFileInfo(PChar(strPath + SearchRec.Name), 0, FileInfo,
SizeOf(FileInfo), SHGFI_ICON or SHGFI_SMALLICON);
icon.Handle := FileInfo.hIcon;
ListItem.ImageIndex := ImageList.AddIcon(Icon);
// Destroy the Icon
DestroyIcon(FileInfo.hIcon);
end;
end;
i := FindNext(SearchRec);
end;
finally
Icon.Free;
ShellListView1.Items.EndUpdate;
end;
end;
end;
Code: Alles auswählen
procedure TForm1.ShellTreeView1Click(Sender: TObject);
begin
combobox1.text := ShellTreeView1.GetSelectedNodePath;
ShellListView1.SmallImages := ImageList1;
LV_InsertFiles(combobox1.text+'\', ShellListView1, ImageList1);
end;
Ist doch so in Ordnung, viel abspecken wirst du daran nicht können.Nur ich muss die Procedure noch abspecken.