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

Composants VCL Delphi Discussion :

Icones et TlistView


Sujet :

Composants VCL Delphi

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 4
    Par défaut Icones et TlistView
    Bonjour.. Voila :

    J'aimerai quand j'affiche un fichier dans une TlistView, afficher a coté les icones systeme de ces fichiers, c'est a dire l'icone qui lui est attribué par windows..

    Auriez vous un bout de code ou une idée pour m'aider?? Merci bien..

  2. #2
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 704
    Par défaut Re: Icones,TlistView et Process
    Citation Envoyé par Nano
    afficher a coté les icones systeme de ces fichiers, c'est a dire l'icone qui lui est attribué par windows..
    Trouvé ca :
    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
    17
    18
    19
    function GetIcon(const FileName: string; const Large: Boolean): TIcon; 
    var 
      sfi: TSHFILEINFO; 
      i: Integer; 
    begin 
      Result := nil; 
      try 
        Result := TIcon.Create; 
        if Large then 
          i := SHGFI_LARGEICON 
        else 
          i := SHGFI_SMALLICON; 
        SHGetFileInfo(PChar(FileName), FILE_ATTRIBUTE_NORMAL, sfi, SizeOf(sfi), SHGFI_ICON or SHGFI_USEFILEATTRIBUTES or i); 
        Result.Handle := sfi.hIcon; 
      except 
        if Result <> nil then 
          FreeAndNil(Result); 
      end; 
    end;
    ou ca :
    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
    17
    18
    19
    20
     
    function GetAssociatedIcon(const Ext: PChar): HICON; 
    var 
    Info: TSHFileInfo; 
    begin 
    SHGetFileInfo(Ext, FILE_ATTRIBUTE_NORMAL, Info, SizeOf(Info), SHGFI_ICON or SHGFI_SMALLICON or SHGFI_USEFILEATTRIBUTES); 
    Result := Info.hIcon; 
    end; 
     
     
    procedure TForm1.Button1Click(Sender: TObject); 
    var 
    Ic: TIcon; 
    begin 
    Ic := TIcon.Create; 
    Ic.Handle := GetAssociatedIcon('.txt'); 
    ImageList1.AddIcon(Ic); 
    ImageList1.Draw(Image1.Canvas, 0, 0, 0, True); 
    Ic.Free; 
    end;

    Citation Envoyé par Nano
    2 - J'aimerai pouvoir dumper une tache active en memoire vers un fichier excutable sur le disque dur..
    Comprend pas !?

    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 4
    Par défaut
    Merci beaucoup pour ta reponse.. Je vais tester ca.. Euh a propos de tester , sans vouloir faire mon boulet, tu pourrais pas m'expliquer comment inserer ces images dans ma listview qui se rempli dynamiquement..

  4. #4
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 704
    Par défaut
    Pourquoi ne pas ajouter tes icône dans une TImageList, que tu associerais à ta ListView.

    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 4
    Par défaut
    Merci beaucoup Lung pour ton code.. Mais il ne m'affiche que des icones de DLL quelquesoit le nom du fichier dans la listview..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ...
    // Fin du remplissage dynamique de la Tlistview
     
    for j:=0 to ListView.Items.Count-1 do begin
            Ic := TIcon.Create;
            Ext:=Pchar(ExtractFileExt(ListView.Items.Item[j].Caption+ListView.Items.Item[j].Subitems.Strings[0]));
            Ic.Handle := GetAssociatedIcon(Ext,true);
            ImageList.AddIcon(Ic);
            Ic.Free;
    end;
    ...
    Voila, auriez vous svp une solution pour cela ?

  6. #6
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 704
    Par défaut
    Je viens de faire un test, et ca marche bien ... si on n'oublie pas d'attribuer chaque icône de l'ImageListà l'élément correspondant de la ListView :

    Ajoute quelque chose comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          ListView.Items.Item[j].ImageIndex := ImageList.Count - 1;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ...
    // Fin du remplissage dynamique de la Tlistview
     
    for j:=0 to ListView.Items.Count-1 do begin
            Ic := TIcon.Create;
            Ext:=Pchar(ExtractFileExt(ListView.Items.Item[j].Caption+ListView.Items.Item[j].Subitems.Strings[0]));
            Ic.Handle := GetAssociatedIcon(Ext,true);
            ImageList.AddIcon(Ic);
            ListView.Items.Item[j].ImageIndex := ImageList.Count - 1;   <--
            Ic.Free;
    end;
    ...
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  7. #7
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 4
    Par défaut
    Merci bien .. Ca marche..

  8. #8
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 704
    Par défaut
    Citation Envoyé par Nano
    Merci bien .. Ca marche..
    N'oublie pas le tag [RÉSOLU] dans ton titre !

    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Delphi][Mysql] Icone pour un champ dans un TListView
    Par colfire_dev dans le forum Bases de données
    Réponses: 4
    Dernier message: 13/01/2008, 23h39
  2. liste fichiers (TListView) avec icones
    Par pjb dans le forum C++Builder
    Réponses: 2
    Dernier message: 01/07/2005, 09h06
  3. Affichage d'icones et de texte dans un TListView
    Par Captain_JS dans le forum C++Builder
    Réponses: 1
    Dernier message: 29/10/2004, 12h08
  4. [FORMS] Chemin des icones (intégré FAQ 150 QR)
    Par jerome62 dans le forum Forms
    Réponses: 2
    Dernier message: 30/07/2002, 08h32
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

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