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

  1. #21
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 129
    Points : 95
    Points
    95
    Par défaut
    Beurk !!!

    Je trouve ca bizarre qu'il y est pas un composant tout fait un peu plus simple. le TFileListBox me conviendrait parfaitement si les glyphs etaient pas aussi moche...

    Mais en faite je crois que rien est perdu parce qu'au depart ce que je veux c'est juste de permettre l'ouverture des fichiers par un double click. C'est pour ca que je demandais le chemin et le nom du fichier, je voulais faire un shellexecute open dessus. Il y a t il une alternative a ca, en gros de permettre de faire par un double click ce que l'on peut faire avec click droit open ?

  2. #22
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 133
    Points
    15 133
    Par défaut
    Une autre piste (la dernière pour ce soir, après, dodo !) :
    C:\Program Files\Borland\Delphi7\Demos\Virtual Listview

    HTH,
    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #23
    Expert confirmé
    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 : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Citation Envoyé par Jipété
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SubItems[0] := ShellListView.Folders[x].Details[2];
    Et va falloir attendre que Sub0 vienne expliquer ce qu'elle fait,
    Et effectivement, pourquoi 2 listes ?
    Salut Jipété !
    J'ai repris ce bout de code de mon projet actuel : Il s'agit d'un explorateur de fichiers distants, ces derniers étant sur un serveur (un site web). Le programme récupère d'abord l'arborescence du serveur puis le nom, la taille et la date de chaque fichier du dossier courant. Ensuite je recrée cette arborescence dans un dossier temporaire sur mon disque dur. J'utilise alors un TShellTreeView pour afficher cette arborescence, un TShellListView pour les obtenir détails des fichiers et un TListView pour les afficher.

    Pourquoi ne pas utiliser directement un TShellListView plutôt qu'une TListView ? Parce-que le TShellListView me pose des problèmes pour implémenter les fonctions de tri par colonne entre autres. Avec une TListView, j'obtiens exactement ce que je veux. Voici une capture du dernier résultat :



    Pour lancer l'exécution du fichier sélectionné, il suffit normalement d'utiliser l'événement OnDblClick de la ListView puis de lancer ce fichier avec un ShellExecute. Concernant le chemin du fichier, il se trouve dans la propriété Root du TShellListView ou du TTreeView et le nom de fichier, dans la propriété Caption de l'item sélectionné, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Procedure TForm1.ListView1DblClick(Sender: TObject);
    Var x: Integer;
    Begin
      If (ListView1.SelCount > 0) Then
        For x := 0 To ListView1.Items.Count - 1 Do
          If (ListView1.Items[x].Selected) Then
            ShowMessage(ShellListView1.Root + ListView1.Items[x].Caption);
    End;
    De retour parmis vous après 10 ans!!

  4. #24
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 129
    Points : 95
    Points
    95
    Par défaut
    Merci beaucoup,

    J'essaye de peaufiner.
    Est-ce que tu sais comment faire pour passer en affichage details avec le TShellListview ou/et le TListview, et n'afficher que la colonne nom.
    Est-ce que tu sais comment faire pour permettre le glisser deposer de fichier dans la fenetre...
    Au cas ou je sois oblige d'utiliser le TListView sais tu d'ou provient l'erreur d'execution rencontree par (dans la mesure ou j'ai pas besoin des details (juste le nom) en ais-je besoin ?):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SubItems[0] := ShellListView.Folders[x].Details[2];

  5. #25
    Expert confirmé
    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 : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Oui.

    Pour passer en affichage details avec le TShellListView ou/et le TListView, il faut mettre la propriété ViewStyle sur vsReport et attribuer des colonnes (voir l'aide en ligne sur ListView.Columns). Pour n'afficher que le nom, je pense qu'il faut remplacer le code qui te bloque par celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListView1.Items[x].Caption := ShellListView1.Folders[x].DisplayName;
    Le problème que tu rencontrais provenait du fait que tu n'avais pas créer suffisemment de colonne dans la ListView ou que le ShellListView n'était pas en mode vsReport...

    Pour le glisser-deposer, cherche dans Google.fr avec les mots clés suivants :
    delphi listview drag drop
    De retour parmis vous après 10 ans!!

  6. #26
    Expert confirmé
    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 : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    De retour parmis vous après 10 ans!!

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