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

API, COM et SDKs Delphi Discussion :

[SHELL] Icônes associées à des fichiers


Sujet :

API, COM et SDKs Delphi

  1. #1
    agh
    agh est déconnecté
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 51
    Points : 49
    Points
    49
    Par défaut [SHELL] Icônes associées à des fichiers
    Bonjour,

    j'ai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fichier1 := 'toto.txt' ;
    fichier2 := 'toto.jpg' ;
    Comment faire pour obtenir l'icône associé a chaque fichier ?
    Merci
    Alexis
    ----------
    Delphi 7 Perso [FR]
    Windows XP Pro [FR]

  2. #2
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    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 664
    Points : 6 967
    Points
    6 967
    Par défaut
    J'ai trouvé ca (pas testé ):

    Je recupère l'icone associé au fichier texte par cette méthode:

    Code:
    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;
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ É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.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 69
    Points : 77
    Points
    77
    Par défaut
    moi j'utilise ça :
    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 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;
    (ne pas oublier de faire un Free du TIcon renvoyé lorsqu'il n'est plus utile)

    c'est à peu près pareil sauf qu'ici on a l'icône pour un fichier précis (par ex les .exe et .lnk ont souvent des icônes différentes pour chaque fichier)
    Mes programmes : www.antp.be/software/fr/

  4. #4
    agh
    agh est déconnecté
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 51
    Points : 49
    Points
    49
    Par défaut
    Merci, mais ça marche pas : il me dit :

    [Erreur] fonctions.pas(40): Identificateur non déclaré : 'FILE_ATTRIBUTE_NORMAL'

    pour ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SHGetFileInfo(PChar(FileName), FILE_ATTRIBUTE_NORMAL, sfi, SizeOf(sfi), SHGFI_ICON or SHGFI_USEFILEATTRIBUTES or i);
    Merci
    Alexis
    ----------
    Delphi 7 Perso [FR]
    Windows XP Pro [FR]

  5. #5
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    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 664
    Points : 6 967
    Points
    6 967
    Par défaut
    Tu as bien Windows dans tes uses ?

    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ É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.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  6. #6
    agh
    agh est déconnecté
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 51
    Points : 49
    Points
    49
    Par défaut
    Ça marche, merci !

    En effet, il me manquait Windows...
    Alexis
    ----------
    Delphi 7 Perso [FR]
    Windows XP Pro [FR]

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

Discussions similaires

  1. Récupérer l'icône associée à un fichier
    Par Thomas Lebrun dans le forum Contribuez
    Réponses: 0
    Dernier message: 29/12/2010, 10h55
  2. Récupérer l'icône associée à un fichier
    Par Thomas Lebrun dans le forum Contribuez
    Réponses: 0
    Dernier message: 28/12/2010, 23h23
  3. Script Shell pour construire des fichiers XML
    Par yanis97 dans le forum Applications et environnements graphiques
    Réponses: 0
    Dernier message: 22/03/2010, 10h30
  4. Icône associé à un fichier
    Par totoche dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 05/01/2009, 23h29
  5. Réponses: 5
    Dernier message: 28/04/2004, 15h20

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