L'obtention de l'icône associée à une extension de fichier


Cet article introduit une fonction que vous pouvez utiliser pour obtenir la icône d'un fichier ou d'un document en fonction de son extension de fichier (c'est à dire qu'il n'a pas d'importance si le fichier ou le document existe sur le disque ou non)
ExtractAssociatedIcon
Pour obtenir l'icône d'une application ou d'un document, nous pouvons utiliser cette fonction API (déclarée dans le ShellAPI unité):
function ExtractAssociatedIcon(hInst: HINST lpIconPath: PChar
& nbsp & nbsp var lpiIcon: Word): HICON stdcall

hInst: La poignée de l'application. Cette valeur est contenue dans la variable prédéfinie HInstance.
lpIconPath: Un pointeur vers un tampon de caractères que doit contenir une valeur null chaîne de caractères avec le nom de chemin complet de l'application, de la bibliothèque (DLL) ou d'un document. Si c'est un document, la fonction y placer le nom de chemin complet de l'application associée à partir de l'emplacement de l'icône a été extraite, donc on doit allouer un buffer assez grand.
lpiIcon: L'icône de l'index (la première icône dans le fichier a un indice de 0). Si lpIconPath spécifie un document, puis lpiIcon est définie par la fonction (c'est pourquoi il est passé par référence) à la position d'index de l'icône réelle prise à partir de l'exécutable associé (défini dans le fichier de l'association).
valeur de Retour: Si la fonction échoue, elle renvoie 0. Si elle réussit, elle renvoie un handle d'icône, qui est une valeur entière Windows utilise pour identifier les ressources allouées. Il n'est pas nécessaire d'appeler l'API DestroyIcon pour libérer l'icône depuis ça va être libéré automatiquement lorsque l'application se termine, vous pouvez le faire si vous le souhaitez.
EXEMPLE d'APPEL
Maintenant, que faisons-nous avec l'icône de la poignée? Normalement, c'est ce que nous voulons, c'est une icône, à savoir l'instance et de la TIcon classe. Tout ce que nous avons à faire est de créer un TIcon objet et affecter cette poignée de Poignée de propriété. Si plus tard nous attribuer la Poignée de la propriété à une autre valeur, l'icône précédente sera automatiquement publié. La même chose se produit si le TIcon objet est libéré.
Voici un exemple qui modifie l'icône de la forme:
utilise SysUtils, Windows, ShellAPI
& nbsp & nbsp procedure TForm1.Button1Click(Sender: TObject)
& nbsp & nbsp var
& ! & ! & ! & nbsp Indexicône: mot
& ! & ! & ! & nbsp Tampon: array[0..2048] de char
& ! & ! & ! & nbsp IconHandle: HIcon
& nbsp & nbsp commencer
& ! & ! & ! & nbsp StrCopy(@Tampon, 'C:\Windows\Help\Windows.hlp')
& ! & ! & ! & nbsp Indexicône := 0
& ! & ! & ! & nbsp IconHandle := ExtractAssociatedIcon(HInstance, Tampon, Indexicône)
& ! & ! & ! & nbsp si IconHandle <> 0 then
& ! & ! & ! & ! & ! & nbsp Icône.Poignée := IconHandle
& nbsp & nbsp fin

GETASSOCIATEDICON
Malheureusement, ExtractAssociatedIcon échoue si le fichier n'existe pas sur le disque, nous avons défini une procédure qui obtient l'icône d'un fichier si il existe ou pas, et peut également obtenir la petite icône (idéal pour un TListView qui peut être montré dans les vsIcon ou vsReport vue de styles). La procédure reçoit trois paramètres: le nom de fichier et deux pointeurs vers HICON (entier) variables: l'une pour la grande icône (32x32) et l'autre pour la petite icône (16x16). L'un d'eux peut être nul si vous n'avez pas besoin de l'une de ces icônes. Les icônes 'retourné' par la procédure doit être libérée avec la DestroyIcon API. Ceci sera fait automatiquement si vous attribuez l'icône gérer (HICON) à la Poignée de la propriété d'un TIcon objet (l'icône sera libérée lors de cet objet obtient libéré ou d'une nouvelle valeur lui est attribuée).
utilise SysUtils, Registre, Windows, ShellAPI
& nbsp & nbsp type
& ! & ! & ! & nbsp PHICON = ^HICON
& nbsp & nbsp procédure GetAssociatedIcon(nom de fichier: TFilename
& ! & ! & ! & ! & ! & nbsp PLargeIcon, PSmallIcon: PHICON)
& nbsp & nbsp // Obtient les icônes d'un fichier
& nbsp & nbsp var
& ! & ! & ! & nbsp Indexicône: mot // Position de l'icône dans le fichier
& ! & ! & ! & nbsp FileExt, FileType: string
& ! & ! & ! & nbsp Reg: TRegistry
& ! & ! & ! & nbsp p: entier
& ! & ! & ! & nbsp p1, p2: pchar
& nbsp & nbsp étiquette
& ! & ! & ! & nbsp noassoc
& nbsp & nbsp commencer
& ! & ! & ! & nbsp Indexicône := 0
& ! & ! & ! & nbsp // récupérer l'extension du fichier
& ! & ! & ! & nbsp FileExt := Majuscule(ExtractFileExt(nom de fichier))
& ! & ! & ! & nbsp si ((FileExt <> '.EXE') et (FileExt <> '.ICO')) ou
& ! & ! & ! & ! & ! & ! & ! & nbsp pas FileExists(nom de fichier), puis commencer
& ! & ! & ! & ! & ! & nbsp // Si le fichier est un fichier EXE ou ICO et il existe,
& ! & ! & ! & ! & ! & nbsp // nous allons extraire l'icône de ce fichier. Sinon,
& ! & ! & ! & ! & ! & nbsp // ici, nous allons essayer de trouver l'icône correspondante dans le
& ! & ! & ! & ! & ! & nbsp // Registre de Windows...
& ! & ! & ! & ! & ! & nbsp Reg := nil
& ! & ! & ! & ! & ! & nbsp essayer
& ! & ! & ! & ! & ! & ! & ! & nbsp Reg := TRegistry.Créer(KEY_QUERY_VALUE)
& ! & ! & ! & ! & ! & ! & ! & nbsp Reg.RootKey := HKEY_CLASSES_ROOT
& ! & ! & ! & ! & ! & ! & ! & nbsp si FileExt = '.EXE', puis FileExt := '.COM'
& ! & ! & ! & ! & ! & ! & ! & nbsp si Reg.OpenKeyReadOnly(FileExt)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp essayer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp FileType := Reg.ReadString(')
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp enfin

& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Reg.CloseKey
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & ! & ! & nbsp si (Type de fichier <> ') et Reg.OpenKeyReadOnly(
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp FileType '\DefaultIcon'),
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp essayer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp FileName := Reg.ReadString(')
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp enfin
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Reg.CloseKey
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & nbsp enfin
& ! & ! & ! & ! & ! & ! & ! & nbsp Reg.Gratuit
& ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & nbsp // Si nous n'avons pas pu trouver de l'association, nous vous
& ! & ! & ! & ! & ! & nbsp // essayez d'obtenir les icônes par défaut
& ! & ! & ! & ! & ! & nbsp si FileName = ' then goto noassoc
& ! & ! & ! & ! & ! & nbsp // récupérer le nom et l'icône de l'index à partir de la
& ! & ! & ! & ! & ! & nbsp // de l'association (de la forme ''filaname',l'index')
& ! & ! & ! & ! & ! & nbsp p1 := PChar(nom de fichier)
& ! & ! & ! & ! & ! & nbsp p2 := StrRScan(p1, ',')
& ! & ! & ! & ! & ! & nbsp si p2 <> nil alors commencer
& ! & ! & ! & ! & ! & ! & ! & nbsp p := p2 - p1 1 // la Position de la virgule
& ! & ! & ! & ! & ! & ! & ! & nbsp Indexicône := StrToInt(Copie(nom de fichier, p 1,
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Longueur(nom de fichier) - p))
& ! & ! & ! & ! & ! & ! & ! & nbsp SetLength(nom de fichier, p - 1)
& ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp // Tentative pour obtenir l'icône
& ! & ! & ! & nbsp si ExtractIconEx(pchar(nom de fichier), Indexicône,
& ! & ! & ! & ! & ! & ! & ! & nbsp PLargeIcon^, PSmallIcon^, 1) <> 1 then
& ! & ! & ! & nbsp commencer
noassoc:
& ! & ! & ! & ! & ! & nbsp // échec de L'opération ou le dossier avait aucun
& ! & ! & ! & ! & ! & nbsp // icône. Essayez d'obtenir les icônes par défaut de SHELL32.DLL
& ! & ! & ! & ! & ! & nbsp essayer / de/ pour obtenir l'emplacement de SHELL32.DLL
& ! & ! & ! & ! & ! & ! & ! & nbsp FileName := IncludeTrailingBackslash(GetSystemDir)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! 'SHELL32.DLL'
& ! & ! & ! & ! & ! & nbsp à l'exception de
& ! & ! & ! & ! & ! & ! & ! & nbsp nom de fichier := 'C:\WINDOWS\SYSTEM\SHELL32.DLL'
& ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & nbsp // Déterminer la valeur par défaut de l'icône de l'extension de fichier
& ! & ! & ! & ! & ! & nbsp si (FileExt = '.DOC'), alors Indexicône := 1
& ! & ! & ! & ! & ! & nbsp else if (FileExt = '.EXE')
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp ou (FileExt = '.COM'), alors Indexicône := 2
& ! & ! & ! & ! & ! & nbsp else if (FileExt = '.HLP'), alors Indexicône := 23
& ! & ! & ! & ! & ! & nbsp else if (FileExt = '.INI')
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp ou (FileExt = '.INF'), alors Indexicône := 63
& ! & ! & ! & ! & ! & nbsp else if (FileExt = '.TXT'), alors Indexicône := 64
& ! & ! & ! & ! & ! & nbsp else if (FileExt = '.BAT'), alors Indexicône := 65
& ! & ! & ! & ! & ! & nbsp else if (FileExt = '.DLL')
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp ou (FileExt = '.SYS')
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp ou (FileExt = '.VBX')
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp ou (FileExt = '.OCX')
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp ou (FileExt = '.VXD'), alors Indexicône := 66
& ! & ! & ! & ! & ! & nbsp else if (FileExt = '.FON'), alors Indexicône := 67
& ! & ! & ! & ! & ! & nbsp else if (FileExt = '.TTF'), alors Indexicône := 68
& ! & ! & ! & ! & ! & nbsp else if (FileExt = '.FOT'), alors Indexicône := 69
& ! & ! & ! & ! & ! & nbsp autre Indexicône := 0
& ! & ! & ! & ! & ! & nbsp // Tentative pour obtenir l'icône.
& ! & ! & ! & ! & ! & nbsp si ExtractIconEx(pchar(nom de fichier), Indexicône,
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp PLargeIcon^, PSmallIcon^, 1) <> 1 then
& ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & nbsp // Échoué à obtenir l'icône. Juste 'retour' des zéros.
& ! & ! & ! & ! & ! & ! & ! & nbsp si PLargeIcon <> nil alors PLargeIcon^ := 0
& ! & ! & ! & ! & ! & ! & ! & nbsp si PSmallIcon <> nil alors PSmallIcon^ := 0
& ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp fin
& nbsp & nbsp fin

EXEMPLE d'APPEL
Cet exemple va changer l'icône de votre formulaire:
procedure TForm1.Button1Click(Sender: TObject)
& nbsp & nbsp var
& ! & ! & ! & nbsp SmallIcon: HICON
& nbsp & nbsp commencer
& ! & ! & ! & nbsp GetAssociatedIcon('file.doc', nil, @SmallIcon)
& ! & ! & ! & nbsp si SmallIcon <> 0 then
& ! & ! & ! & ! & ! & nbsp Icône.Poignée := SmallIcon
& nbsp & nbsp fin









L'obtention de l'icone associee a une extension de fichier


L'obtention de l'icone associee a une extension de fichier : Plusieurs milliers de conseils pour vous faciliter la vie.


Cet article introduit une fonction que vous pouvez utiliser pour obtenir la icone d'un fichier ou d'un document en fonction de son extension de fichier (c'est a dire qu'il n'a pas d'importance si le fichier ou le document existe sur le disque ou non)
ExtractAssociatedIcon
Pour obtenir l'icone d'une application ou d'un document, nous pouvons utiliser cette fonction API (declaree dans le ShellAPI unite):
function ExtractAssociatedIcon(hInst: HINST lpIconPath: PChar
& nbsp & nbsp var lpiIcon: Word): HICON stdcall

hInst: La poignee de l'application. Cette valeur est contenue dans la variable predefinie HInstance.
lpIconPath: Un pointeur vers un tampon de caracteres que doit contenir une valeur null chaîne de caracteres avec le nom de chemin complet de l'application, de la bibliotheque (DLL) ou d'un document. Si c'est un document, la fonction y placer le nom de chemin complet de l'application associee a partir de l'emplacement de l'icone a ete extraite, donc on doit allouer un buffer assez grand.
lpiIcon: L'icone de l'index (la premiere icone dans le fichier a un indice de 0). Si lpIconPath specifie un document, puis lpiIcon est definie par la fonction (c'est pourquoi il est passe par reference) a la position d'index de l'icone reelle prise a partir de l'executable associe (defini dans le fichier de l'association).
valeur de Retour: Si la fonction echoue, elle renvoie 0. Si elle reussit, elle renvoie un handle d'icone, qui est une valeur entiere Windows utilise pour identifier les ressources allouees. Il n'est pas necessaire d'appeler l'API DestroyIcon pour liberer l'icone depuis ça va etre libere automatiquement lorsque l'application se termine, vous pouvez le faire si vous le souhaitez.
EXEMPLE d'APPEL
Maintenant, que faisons-nous avec l'icone de la poignee? Normalement, c'est ce que nous voulons, c'est une icone, a savoir l'instance et de la TIcon classe. Tout ce que nous avons a faire est de creer un TIcon objet et affecter cette poignee de Poignee de propriete. Si plus tard nous attribuer la Poignee de la propriete a une autre valeur, l'icone precedente sera automatiquement publie. La meme chose se produit si le TIcon objet est libere.
Voici un exemple qui modifie l'icone de la forme:
utilise SysUtils, Windows, ShellAPI
& nbsp & nbsp procedure TForm1.Button1Click(Sender: TObject)
& nbsp & nbsp var
& ! & ! & ! & nbsp Indexicone: mot
& ! & ! & ! & nbsp Tampon: array[0..2048] de char
& ! & ! & ! & nbsp IconHandle: HIcon
& nbsp & nbsp commencer
& ! & ! & ! & nbsp StrCopy(@Tampon, 'C:\Windows\Help\Windows.hlp')
& ! & ! & ! & nbsp Indexicone := 0
& ! & ! & ! & nbsp IconHandle := ExtractAssociatedIcon(HInstance, Tampon, Indexicone)
& ! & ! & ! & nbsp si IconHandle <> 0 then
& ! & ! & ! & ! & ! & nbsp Icone.Poignee := IconHandle
& nbsp & nbsp fin

GETASSOCIATEDICON
Malheureusement, ExtractAssociatedIcon echoue si le fichier n'existe pas sur le disque, nous avons defini une procedure qui obtient l'icone d'un fichier si il existe ou pas, et peut egalement obtenir la petite icone (ideal pour un TListView qui peut etre montre dans les vsIcon ou vsReport vue de styles). La procedure reçoit trois parametres: le nom de fichier et deux pointeurs vers HICON (entier) variables: l'une pour la grande icone (32x32) et l'autre pour la petite icone (16x16). L'un d'eux peut etre nul si vous n'avez pas besoin de l'une de ces icones. Les icones 'retourne' par la procedure doit etre liberee avec la DestroyIcon API. Ceci sera fait automatiquement si vous attribuez l'icone gerer (HICON) a la Poignee de la propriete d'un TIcon objet (l'icone sera liberee lors de cet objet obtient libere ou d'une nouvelle valeur lui est attribuee).
utilise SysUtils, Registre, Windows, ShellAPI
& nbsp & nbsp type
& ! & ! & ! & nbsp PHICON = ^HICON
& nbsp & nbsp procedure GetAssociatedIcon(nom de fichier: TFilename
& ! & ! & ! & ! & ! & nbsp PLargeIcon, PSmallIcon: PHICON)
& nbsp & nbsp // Obtient les icones d'un fichier
& nbsp & nbsp var
& ! & ! & ! & nbsp Indexicone: mot // Position de l'icone dans le fichier
& ! & ! & ! & nbsp FileExt, FileType: string
& ! & ! & ! & nbsp Reg: TRegistry
& ! & ! & ! & nbsp p: entier
& ! & ! & ! & nbsp p1, p2: pchar
& nbsp & nbsp etiquette
& ! & ! & ! & nbsp noassoc
& nbsp & nbsp commencer
& ! & ! & ! & nbsp Indexicone := 0
& ! & ! & ! & nbsp // recuperer l'extension du fichier
& ! & ! & ! & nbsp FileExt := Majuscule(ExtractFileExt(nom de fichier))
& ! & ! & ! & nbsp si ((FileExt <> '.EXE') et (FileExt <> '.ICO')) ou
& ! & ! & ! & ! & ! & ! & ! & nbsp pas FileExists(nom de fichier), puis commencer
& ! & ! & ! & ! & ! & nbsp // Si le fichier est un fichier EXE ou ICO et il existe,
& ! & ! & ! & ! & ! & nbsp // nous allons extraire l'icone de ce fichier. Sinon,
& ! & ! & ! & ! & ! & nbsp // ici, nous allons essayer de trouver l'icone correspondante dans le
& ! & ! & ! & ! & ! & nbsp // Registre de Windows...
& ! & ! & ! & ! & ! & nbsp Reg := nil
& ! & ! & ! & ! & ! & nbsp essayer
& ! & ! & ! & ! & ! & ! & ! & nbsp Reg := TRegistry.Creer(KEY_QUERY_VALUE)
& ! & ! & ! & ! & ! & ! & ! & nbsp Reg.RootKey := HKEY_CLASSES_ROOT
& ! & ! & ! & ! & ! & ! & ! & nbsp si FileExt = '.EXE', puis FileExt := '.COM'
& ! & ! & ! & ! & ! & ! & ! & nbsp si Reg.OpenKeyReadOnly(FileExt)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp essayer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp FileType := Reg.ReadString(')
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp enfin

& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Reg.CloseKey
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & ! & ! & nbsp si (Type de fichier <> ') et Reg.OpenKeyReadOnly(
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp FileType '\DefaultIcon'),
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp essayer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp FileName := Reg.ReadString(')
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp enfin
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Reg.CloseKey
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & nbsp enfin
& ! & ! & ! & ! & ! & ! & ! & nbsp Reg.Gratuit
& ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & nbsp // Si nous n'avons pas pu trouver de l'association, nous vous
& ! & ! & ! & ! & ! & nbsp // essayez d'obtenir les icones par defaut
& ! & ! & ! & ! & ! & nbsp si FileName = ' then goto noassoc
& ! & ! & ! & ! & ! & nbsp // recuperer le nom et l'icone de l'index a partir de la
& ! & ! & ! & ! & ! & nbsp // de l'association (de la forme ''filaname',l'index')
& ! & ! & ! & ! & ! & nbsp p1 := PChar(nom de fichier)
& ! & ! & ! & ! & ! & nbsp p2 := StrRScan(p1, ',')
& ! & ! & ! & ! & ! & nbsp si p2 <> nil alors commencer
& ! & ! & ! & ! & ! & ! & ! & nbsp p := p2 - p1 1 // la Position de la virgule
& ! & ! & ! & ! & ! & ! & ! & nbsp Indexicone := StrToInt(Copie(nom de fichier, p 1,
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Longueur(nom de fichier) - p))
& ! & ! & ! & ! & ! & ! & ! & nbsp SetLength(nom de fichier, p - 1)
& ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp // Tentative pour obtenir l'icone
& ! & ! & ! & nbsp si ExtractIconEx(pchar(nom de fichier), Indexicone,
& ! & ! & ! & ! & ! & ! & ! & nbsp PLargeIcon^, PSmallIcon^, 1) <> 1 then
& ! & ! & ! & nbsp commencer
noassoc:
& ! & ! & ! & ! & ! & nbsp // echec de L'operation ou le dossier avait aucun
& ! & ! & ! & ! & ! & nbsp // icone. Essayez d'obtenir les icones par defaut de SHELL32.DLL
& ! & ! & ! & ! & ! & nbsp essayer / de/ pour obtenir l'emplacement de SHELL32.DLL
& ! & ! & ! & ! & ! & ! & ! & nbsp FileName := IncludeTrailingBackslash(GetSystemDir)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! 'SHELL32.DLL'
& ! & ! & ! & ! & ! & nbsp a l'exception de
& ! & ! & ! & ! & ! & ! & ! & nbsp nom de fichier := 'C:\WINDOWS\SYSTEM\SHELL32.DLL'
& ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & nbsp // Determiner la valeur par defaut de l'icone de l'extension de fichier
& ! & ! & ! & ! & ! & nbsp si (FileExt = '.DOC'), alors Indexicone := 1
& ! & ! & ! & ! & ! & nbsp else if (FileExt = '.EXE')
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp ou (FileExt = '.COM'), alors Indexicone := 2
& ! & ! & ! & ! & ! & nbsp else if (FileExt = '.HLP'), alors Indexicone := 23
& ! & ! & ! & ! & ! & nbsp else if (FileExt = '.INI')
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp ou (FileExt = '.INF'), alors Indexicone := 63
& ! & ! & ! & ! & ! & nbsp else if (FileExt = '.TXT'), alors Indexicone := 64
& ! & ! & ! & ! & ! & nbsp else if (FileExt = '.BAT'), alors Indexicone := 65
& ! & ! & ! & ! & ! & nbsp else if (FileExt = '.DLL')
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp ou (FileExt = '.SYS')
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp ou (FileExt = '.VBX')
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp ou (FileExt = '.OCX')
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp ou (FileExt = '.VXD'), alors Indexicone := 66
& ! & ! & ! & ! & ! & nbsp else if (FileExt = '.FON'), alors Indexicone := 67
& ! & ! & ! & ! & ! & nbsp else if (FileExt = '.TTF'), alors Indexicone := 68
& ! & ! & ! & ! & ! & nbsp else if (FileExt = '.FOT'), alors Indexicone := 69
& ! & ! & ! & ! & ! & nbsp autre Indexicone := 0
& ! & ! & ! & ! & ! & nbsp // Tentative pour obtenir l'icone.
& ! & ! & ! & ! & ! & nbsp si ExtractIconEx(pchar(nom de fichier), Indexicone,
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp PLargeIcon^, PSmallIcon^, 1) <> 1 then
& ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & nbsp // Echoue a obtenir l'icone. Juste 'retour' des zeros.
& ! & ! & ! & ! & ! & ! & ! & nbsp si PLargeIcon <> nil alors PLargeIcon^ := 0
& ! & ! & ! & ! & ! & ! & ! & nbsp si PSmallIcon <> nil alors PSmallIcon^ := 0
& ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp fin
& nbsp & nbsp fin

EXEMPLE d'APPEL
Cet exemple va changer l'icone de votre formulaire:
procedure TForm1.Button1Click(Sender: TObject)
& nbsp & nbsp var
& ! & ! & ! & nbsp SmallIcon: HICON
& nbsp & nbsp commencer
& ! & ! & ! & nbsp GetAssociatedIcon('file.doc', nil, @SmallIcon)
& ! & ! & ! & nbsp si SmallIcon <> 0 then
& ! & ! & ! & ! & ! & nbsp Icone.Poignee := SmallIcon
& nbsp & nbsp fin


L'obtention de l'icône associée à une extension de fichier

L'obtention de l'icône associée à une extension de fichier : Plusieurs milliers de conseils pour vous faciliter la vie.
Recommander aux amis
  • gplus
  • pinterest

Messages récents

Commentaire

Laisser un commentaire

évaluation