Icon aus Datei
-
Hallo!
Ich möchte einer TListView einen Eintrag hinzufügen mit dem Symbol einer Datei... Komme damit jedoch nicht ganz klar...
Habe folgenden Code:TListItem *Listitem; TIcon *Icon = new TIcon(); String ExtrFileName; ExtrFileName = "C:\\Beispiel.exe"; Listitem = ListView1->Items->Add(); Listitem->Caption = ExtrFileName; Icon->Handle = ExtractIcon(HInstance,ExtrFileName.c_str(),0); Listitem->ImageIndex = ImageList1->AddIcon(Icon); //Die folgende Zeile entkommentieren zeigt, dass der ImageList kein Icon //hinzugefügt wird... :-( //ShowMessage(IntToStr(ImageList1->Count));
Irgendwie wird aber der ImageList1 nichtmal ein Icon hinzugefügt... Was mache ich da nur falsch??
tschüss
Robert
-
Sieht auf Anhieb alles richtig aus, abgesehen davon, dass das delete fehlt.
Hast du denn mal überprüft, ob ExtractIcon überhaupt erfolgreich ist, also einen Wert ungleich NULL zurückgibt?
-
Hallo!
Erstmal besten Dank für deine Antwort!
ups... - delete fehlt... - ohh du PeinlichkeitHabe den Fehler gefunden: Ich hatte dem ListView SmallImages statt LargeImages auf ImageList1 gesetzt...
Was ich jetzt aber festgestellt habe: Ich bin dumm
Ich kann zwar jetzt stolz sein, dass dies funktioniert, bemerke dabei aber auch gleich, dass das gar nicht die Funktion ist, die ich brauche ...
:o
Da hab ich mich wohl irgendwo "verlesen"Ich möchte, dass das Icon einer jeden Datei angezeigt werden kann. Mit meiner Funktion kann ich jetzt zwar die Icons einer Exe, Dll oder ICO - Datei anzeigen, das Symbol für eine *.txt oder *.doc - Datei zeigts mir aber leider nicht an...
Weiß vielleicht jemand, welche Funktion ich da brauche???
Danke nochmal!
tschüss
Robert
-
Hi rowisoft
ich mach das so:
void __fastcall TForm1::LoadAppIcon(AnsiString FName) { SHFILEINFO shFinfo; HIMAGELIST hImgList = NULL; if (FName.Length()>0) { hImgList = (HIMAGELIST)SHGetFileInfo( FName.c_str(), 0, &shFinfo, sizeof( shFinfo ), SHGFI_ICON); TIcon *Icon; Icon=new TIcon; Icon->Handle=CopyIcon(shFinfo.hIcon); Image1->AutoSize=true; Image1->Stretch=false; Image1->Picture->Assign(Icon); delete Icon; } }
Ich lass das Icon gleich in 'nem TImage anzeigen.
Geht prima! Holt die Zuordnung, die Windows im Explorer nutzt!
PS: Du musst das nicht in ner Funktion verpacken! :p
[ Dieser Beitrag wurde am 30.03.2003 um 15:58 Uhr von DerAltenburger editiert. ]
-
Hallo!
Vielen Dank! Funktioniert!!!
Wäre das jetzt nicht vielleicht was für die FAQ - 2 "Icon-Funktionen" in einem?Danke euch nochmal!!!
schönen Sonntag!
tschüss
Robert
-
die info hättest du durch suchen auch finden können!
Dateien+Verzeichnisse - Standard-Icons für Dateianzeige verwenden
-
Wo mag wohl DerAltenburger den Code her haben ...
Aber wer hat denn mal eine schöne/treffende Überschrift für die FAQ?
Sowas wie "Standard-Icons für Dateianzeige verwenden" vielleicht?
-
Original erstellt von Jansen:
Sowas wie "Standard-Icons für Dateianzeige verwenden" vielleicht?Joa, is OK.
-
Wo mag wohl DerAltenburger den Code her haben
Ich glaub' das war 'mal in einer Delphi- FAQ (Torrys o.ä.)
Bin eigentlich Pascal- Freak gewesen. :p
-
Nur seltsam, dass du in dem von Sunday zitierten, knapp 3 Wochen alten Thread scheinbar noch keine Ahnung davon hattest ...
-
Da gings mir um die Gesantkomponente 'TreeView fuer Ordner- Baum' !!!
(Treeview fuer alle Laufwerke, Arbeitsplatz und Netzwerk [mit oder ohne Icons])