IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

[TFileListBox] icones des types de fichiers


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 129
    Par défaut [TFileListBox] icones des types de fichiers
    Bonjour a tous,

    Connaissez vous un composant du genre de TFileListBox qui affiche en plus les icones des fichiers en lieu et places des glyphes un peu vieillotes ?

  2. #2
    Expert confirmé

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Par défaut
    TShellListView de l'onglet Exemples
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 129
    Par défaut
    Raa zut je le trouve pas sur Turbo Delphi 2006... Tu sais s'il y a moyen de le rapatrier ?

    Edit : En achetant la version pro

  4. #4
    Expert confirmé

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Par défaut
    Oui en effet ce n'est pas disponible sur les Turbo, mais bien sur les éditions Perso des autres versions.
    Désolé
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  5. #5
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    J'ai une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    {----------------------------------------------------------------}
    { Initialisation du programme                                    }
    {----------------------------------------------------------------}
    Procedure TForm1.FormCreate(Sender: TObject);
    Var FileInfo: TSHFileInfo;
    Begin
      ListView1.DoubleBuffered := True;
     
      { Chargement des îcones des fichiers }
      SendMessage(ListView1.Handle, LVM_SETIMAGELIST, LVSIL_SMALL,
        SHGetFileInfo('C:\', 0, FileInfo, SizeOf(FileInfo),
        SHGFI_SYSICONINDEX Or SHGFI_SMALLICON));
      SendMessage(ListView1.Handle, LVM_SETIMAGELIST, LVSIL_NORMAL,
        SHGetFileInfo('C:\', 0, FileInfo, SizeOf(FileInfo),
        SHGFI_SYSICONINDEX Or SHGFI_LARGEICON));
    End;
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      { Réinitialisation de la liste }
      ListView1.Clear;
      ListView1.Items.Assign(ShellListView1.Items);
      If (ShellListView1.Items.Count > 0) Then
        For x := 0 To ShellListView1.Items.Count - 1 Do
          With ListView1.Items[x] Do Begin
            Caption := ShellListView1.Folders[x].DisplayName;
            ImageIndex := ShellListView1.Folders[x].ImageIndex(False);
            SubItems[0] := ShellListView1.Folders[x].Details[2];
          End;
     
      { Tri de la liste }
      ListView1.AlphaSort;
    Je n'ai pas trouvé plus "simple" pour le moment que d'utiliser une ShellListView pour récupérer les icônes et le type des fichiers d'un dossier.

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 129
    Par défaut
    Je n'arrive pas a recuperer le composant TShellListview avec la version pro de turbo delphi explorer.

    pourtant l'unite l'instanciant existe bien (shellctrls.pas), mais il n'apparait nul part dans la liste des composants enregistres...

    Il y a t'il une solution pour l'inscrire...

    Merci !

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 129
    Par défaut
    Citation Envoyé par Sub0
    J'ai une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    {----------------------------------------------------------------}
    { Initialisation du programme                                    }
    {----------------------------------------------------------------}
    Procedure TForm1.FormCreate(Sender: TObject);
    Var FileInfo: TSHFileInfo;
    Begin
      ListView1.DoubleBuffered := True;
     
      { Chargement des îcones des fichiers }
      SendMessage(ListView1.Handle, LVM_SETIMAGELIST, LVSIL_SMALL,
        SHGetFileInfo('C:\', 0, FileInfo, SizeOf(FileInfo),
        SHGFI_SYSICONINDEX Or SHGFI_SMALLICON));
      SendMessage(ListView1.Handle, LVM_SETIMAGELIST, LVSIL_NORMAL,
        SHGetFileInfo('C:\', 0, FileInfo, SizeOf(FileInfo),
        SHGFI_SYSICONINDEX Or SHGFI_LARGEICON));
    End;
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      { Réinitialisation de la liste }
      ListView1.Clear;
      ListView1.Items.Assign(ShellListView1.Items);
      If (ShellListView1.Items.Count > 0) Then
        For x := 0 To ShellListView1.Items.Count - 1 Do
          With ListView1.Items[x] Do Begin
            Caption := ShellListView1.Folders[x].DisplayName;
            ImageIndex := ShellListView1.Folders[x].ImageIndex(False);
            SubItems[0] := ShellListView1.Folders[x].Details[2];
          End;
     
      { Tri de la liste }
      ListView1.AlphaSort;
    Je n'ai pas trouvé plus "simple" pour le moment que d'utiliser une ShellListView pour récupérer les icônes et le type des fichiers d'un dossier.
    Je comprends rien a ton code !
    Pourquoi dans le premier il y a deux fois la meme commande ? Il y a des reglages a faire sur les items du shellListView ou du listview parce qu'en l'etat j'ai une erreur a l'execution ?!

    Merci !!!!

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/08/2010, 03h36
  2. [WD15] Associer une icone à un type de fichier dans windows
    Par L.Lemarchand dans le forum WinDev
    Réponses: 1
    Dernier message: 24/05/2010, 05h49
  3. Icones des types de fichiers
    Par fred_malette dans le forum Delphi
    Réponses: 1
    Dernier message: 28/09/2006, 10h52
  4. [vb.net][treeview] Icone du type de fichier (exemple Word)
    Par arnolem dans le forum Windows Forms
    Réponses: 4
    Dernier message: 20/02/2006, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo