AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Icons in Listbox

Ein Thema von N47R0N · begonnen am 5. Okt 2005 · letzter Beitrag vom 6. Okt 2005
Antwort Antwort
N47R0N

Registriert seit: 26. Mai 2005
117 Beiträge
 
#1

Icons in Listbox

  Alt 5. Okt 2005, 21:18
Hi

so ich hab geschaft einen Filemanager zu coden nun geht es um das
aussehen, meine Frage ist nun wie man es hinbekmmt das wenn in der
Listbox nun die namen der Files die sich z.B. auf Laufwerk C:/ befinden
auch immer das Pasende Icon dazu gepackt wird.

also wenn es eine Winrar File ist dann steht am anfang gans klein das
Winrar Icon und dann der Filename. das selbe auch bei allen anderen
Formaten und Ordnern.

wie kann ich das realisieren?
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Icons in Listbox

  Alt 5. Okt 2005, 22:08
Das geht über die Shellextensions. Schau doch mal in der ShellAPI, da müsste es was geben. Ich meine, bei www.swissdelphicenter.ch was gesehen zu haben
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
N47R0N

Registriert seit: 26. Mai 2005
117 Beiträge
 
#3

Re: Icons in Listbox

  Alt 6. Okt 2005, 07:34
nach was soll ich bei swissdelphicenter suchen? wen ich Shellextensions
eingebe findet er nichts
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Icons in Listbox

  Alt 6. Okt 2005, 07:47
es gibt mehrere Variante an die Icons zu kommen. Zum einen ExtractAssociatedIcon zum anderen
gibt es die Möglichkeit eine Imagelist zu nehmen (fImgList)
Delphi-Quellcode:
//zum Initialisieren (zur einmal ausführen)
var LSFI: TSHFileInfo;
[...]
  LHandle := SHGetFileInfo('', 0, LSFI, SizeOf(LSFI), SHGFI_SYSICONINDEX or SHGFI_OPENICON);
  if LHandle <> 0 then
  begin
    fImgList.Handle := LHandle;
    fImgList.ShareImages := True;
  end;
[...]
//zum Icon holen
var LInfo: TSHFileInfo;
[...]
  SHGetFileInfo(PChar(LFilename),0,LInfo,SizeOf(TSHFileInfo),SHGFI_SYSIconIndex or SHGFI_TYPENAME);
  fImgList.GetBitmap(LInfo.iIcon, fTmpBitmap);
der Quelltext ist ein Auszug aus einem meiner Programme, daher auch die nicht immer ganz eindeutigen VariablenNamen
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Icons in Listbox

  Alt 6. Okt 2005, 08:32
@SirThornberry:
1. mit 'nem leeren Dateinamen geht's auch?
2. Wieso SHGFI_OPENICON?

Hier mal eine kleine Funktion, die ich mir Anno 98 geschrieben hab' (könnte man lt. obigen Post dann wohl auch vereinfachen) - liefert das Handle für kleine oder große Symbole:
Delphi-Quellcode:
function GetShellImageListHandle(fSmall: boolean): THandle;
var
  sfi: TShFileInfo;
  WinDir: string;
begin
  SetLength(WinDir, MAX_PATH);
  GetWindowsDirectory(PChar(WinDir), MAX_PATH);
  FillChar(sfi, SizeOf(sfi), 0);
  if fSmall
    then Result := SHGetFileInfo(PChar(WinDir), 0, sfi, SizeOf(sfi),
                                 SHGFI_SYSICONINDEX or SHGFI_SMALLICON)
    else Result := SHGetFileInfo(PChar(WinDir), 0, sfi, SizeOf(sfi),
                                 SHGFI_SYSICONINDEX or SHGFI_LARGEICON);
end;
[Nachtrag]

Ach so: für einzelne Dateien und Ordner kannst du dann ebenfalls mit SHGetFileInfo mit dem Parameter SHGFI_SYSICONINDEX den Image-Index ermitteln.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.838 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

Re: Icons in Listbox

  Alt 6. Okt 2005, 13:29
Zitat von N47R0N:
so ich hab geschaft einen Filemanager zu coden nun geht es um das
aussehen, meine Frage ist nun wie man es hinbekmmt das wenn in der
Listbox nun die namen der Files die sich z.B. auf Laufwerk C:/ befinden
auch immer das Pasende Icon dazu gepackt wird
....
wie kann ich das realisieren?
Wie Du an die passenden Icon kommst, zeigten Dir die letzten 2 Beiträge, aber wie kommen die Icons in die Liste?
  • Einfach mal eine TComboBox, TImageList und ein TListView auf ein leeres Form legen.
  • Dann die TListView Komponente markieren und F1 drücken -> Es wird nun die hilfe von Delphi zu TListView geöffnet.
  • Dann in der Hilfe Eigenschaften anklicken -> Es wird das Fenster "Eigenschaften von TListView" mit der Liste aller Eigenschaften angezeigt
  • Items auswählen -> Es wird die Hilfe Seite "Items (Eigenschaft von TCustomListView)" angezeigt.
  • "Delphi-Beispiel" anklicken -> Es kommt ein Auswahlfenster "gefundene Themen"
  • "Column, Items, ViewStyle, SmallImages, LargeImages, ImageIndex, AddObject, Objects (Beispiel)" auswählen
  • lesen und den Quelltext in das Form kopieren.
(Ich habe das gerade in D7 getestet)
Viel Spaß
MaBuSE
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 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