AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Listview und Treeview mit eigenen Icons erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Listview und Treeview mit eigenen Icons erstellen

Ein Thema von djpaull · begonnen am 20. Sep 2009 · letzter Beitrag vom 20. Sep 2009
Antwort Antwort
djpaull
(Gast)

n/a Beiträge
 
#1

Listview und Treeview mit eigenen Icons erstellen

  Alt 20. Sep 2009, 14:28
Hallo allerseits!

Bin gerade dabei, eigenen Explorer zu erstellen. Dabei würde ich gerne für die Ordner und Dateien eigene Icons benutzen. Die Listview kennt nicht alle Icons und ShellListView nur die von (jeweiligen) Windows verwendeten Icons. Da ShellListView schon "eigene" Icons hat, würde ich gern mit der normalen ListView arbeiten. Hier fand ich ein Beispiel dafür, allerdings werden dort auch die Windows Icons benuzt.

Ich dachte hier an ungefähr sowas:
Entweder manuell:
Delphi-Quellcode:
if ItemType:=Folder then MyIcon:=Folder.ico
if ItemType:=.mp3 then MyIcon:=mp3.ico
if ItemType:=.jpg then MyIcon:=jpg.ico
Oder automatisch - man legt ein Array an für die DateiEndungen von Avi bis Zip und ihn anschließend miteiner ImageList verknüpft.

Auf jeden fall weiss ich nicht, wie ich die ListView mit meinen Icons verbinde.
Hat jemand ne Idee?
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: Listview und Treeview mit eigenen Icons erstellen

  Alt 20. Sep 2009, 14:58
Wenn ich mich recht erinnere: Du musst der Listview eine Imagelist zuweisen und jedes Item hat eine ImageIndex Eigenschaft, die bestimmt welches Bild angezeigt wird
  Mit Zitat antworten Zitat
djpaull
(Gast)

n/a Beiträge
 
#3

Re: Listview und Treeview mit eigenen Icons erstellen

  Alt 20. Sep 2009, 15:02
Das stimmt. Nur wie mach ich es so, dass bei einer Mp3-Datei ein Mp3-Icon erscheint? (Zuweisung)

[EDIT 1]

OK. Dann noch mal Schrittweise.
Kann mir jemand sagen, wie man die TreeView und ListView füllen kann - VerzeichnissBaum?
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#4

Re: Listview und Treeview mit eigenen Icons erstellen

  Alt 20. Sep 2009, 17:11
Brauchst halt noch eine Liste in der zu der jeweiligen Dateiendung der ImageIndex gespeichert ist. z. B.

Delphi-Quellcode:
type
  TFileExt = record
    FileExt: String;
    ImageIndex: Integer;
  end;

  TFileExts = array of TFileExt;

...

var
  FileExtArray: TFileExts;

procedure TForm1.OnCreate(Sender: TObject);
begin
  SetLength(FileExtArray, 1);
  FileExtArray.FileExt := 'htm';
  FileExtArray.ImageIndex := 5;
end;

procedure TForm1.ErstelleEintrag(FileName: String);
begin
  with ListView1.Items.Add do
  begin
    ...
    ImageIndex := GetFileImageIndex(ExtractFileExt(FileName));
  end;
end;

function TForm1.GetFileImageIndex(AFileExt: String):Integer;
var
  i: Integer;
begin
  Result := -1;
  for i := 0 to Length(FileExtArray) -1 do
  begin
    if LowerCase(AFileExt) = LowerCase(FileExtArray[i].FileExt then
    begin
      Result := FileExtArray[i].ImageIndex;
      Break;
    end;
  end;
end;
Besser wäre es natürlich wenn du dir eine Komponente von TCollection ableitest, dann kannst du die ImageIndexe und Dateiendungen zur DesignTime im Objekt-Inspektor einstellen.
  Mit Zitat antworten Zitat
djpaull
(Gast)

n/a Beiträge
 
#5

Re: Listview und Treeview mit eigenen Icons erstellen

  Alt 20. Sep 2009, 17:31
Danke für die Antwort. So wie es aussieht, werde ich mich jetzt noch ne Weile mit deinem Code auseinandersetzen - bin noch kein Profi
Aber da gibts noch ne Kleinigkeit - ich habe Delphi 2005 und habe keine TCollection-Komponente im ObjektInspektor.
  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 11:36 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