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 Listview -> ICons aus ImageList oder nach Dateityp (https://www.delphipraxis.net/696-listview-icons-aus-imagelist-oder-nach-dateityp.html)

Salomon 24. Aug 2002 11:53


Listview -> ICons aus ImageList oder nach Dateityp
 
Hallo,
ich habe ein paar Probleme in eine Listview Icons einzubinden. Siehe Code:
Code:
with ListView do
      begin
       ListItem := ListView.Items.Add;
       Listitem.Caption := 'joo';
       ListItem.ImageIndex := //wie kann ich hier die imagelist angeben?;
      end;
end;
Dann habe ich noch eine Frage. Ich bekomme von meinem Server eine Liste allerdateien eines Verzeichnisses. Diese Liste beinhaltet den Dateinamen mit seiner Extension.
Gibt es eine Möglichkeit anhand des Dateitypes auf sein Icon zu schließen und dieses dann in der Listview anzuzeigen?
Also so, das ein Word Document in der List ein "Word Icon" hat un darunter der Name des Dokumentes steht.

Mfg
Salomon

MathiasSimmack 24. Aug 2002 12:13

Such mal hier im Forum unter Sonstiges ...Vor ein paar Wochen, bzw. Monaten haben wir das Thema "Icons von Laufwerken und Dateitypen" schon mal durchgekaut - und da ist auch ein ListView-Beispiel beigewesen.

Ich weiß das noch, weil ich Code von sakura verwendet habe um das zu demonstrieren. Aber es ist nicht meine Aufgabe, dir diese Themen herauszusuchen.

@Mods, Meister, Admins: Vielleicht wäre es an der Zeit, den Leuten vor dem Posten einen Hinweis auf die schon vorhandenen Beiträge und die Suchfunktion zu geben? Wenn also jemand den Link "Neues Thema" benutzt, dann sieht er bspw. die Eingabeseite - aber da könnte noch ein Text stehen wie

Vor dem Posten bitte "Suchen", ob dieses Thema möglicherweise bereits vorhanden ist!

Salomon 24. Aug 2002 14:14

Der Thread war mir bekannt, ich habe ihn nur nicht bis zum Ende verfolgt. Ich habe jetzt eine Lösung gefunden:
Code:
function GetAssociatedIcon(const AExtension: string; ASmall: Boolean): HIcon;
var
  Info: TSHFileInfo;
  Flags: Cardinal;
begin
  if ASmall then
    Flags := SHGFI_ICON or SHGFI_SMALLICON or SHGFI_USEFILEATTRIBUTES
  else
    Flags := SHGFI_ICON or SHGFI_LARGEICON or SHGFI_USEFILEATTRIBUTES;

  SHGetFileInfo(PChar(AExtension), FILE_ATTRIBUTE_NORMAL, Info, SizeOf(TSHFileInfo), Flags);
  Result := Info.hIcon;
end;

procedure TForm1.Image1Click(Sender: TObject);
var
  ListItem: TListItem;
     icon : TIcon;
begin
  ListView.LargeImages := Imagelist;
  Icon := TIcon.Create;
  Icon.Handle := GetAssociatedIcon('.pas', false);
  icon.Transparent := true;

   ListView.Items.BeginUpdate;
     ListItem := ListView.Items.Add;
     ListItem.ImageIndex := ImageList.AddIcon(Icon);
    //   ListView.Items[0].ImageIndex := icon.Handle;
     ListItem.Caption := 'joo';
   ListView.Items.EndUpdate;
 Icon.Free;
end;
Mfg
Salomon


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:47 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