Page 1 sur 1

[..] Adapter la taille de l'icone a celle du boutton

Posté : jeu. 27 janv. 2011 09:54
par zeshrek
Bonjour a tous.
J'ai un petit probleme de taille avec les icones.
Je sais les agrandir (même si il faut se mefier des effets d'escalier, comme dans l'exemple)
Je sais les mettre sur un 'petit' bouton
Mais je ne sais pas les agrandir sur un bouton !

Dans l'exemple ci dessosu, comment faire pour que dans le second bouton (en bas a gauche) l'icone s'étende sur une surface 'raisonnable' au lieu de rester sous forme d'un petit machin tout rabougri ?

D'avance merci.

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>


GUICreate(" My GUI Icons", 270, 200)

$Button1 = GUICtrlCreateButton("Button1", 10, 10, 40, 40, $BS_ICON)
GUICtrlSetImage($Button1, "C:\WINDOWS\system32\shell32.dll", 10)
$Button2 = GUICtrlCreateButton("Button2", 10, 50, 97, 97, $BS_ICON)
GUICtrlSetImage($Button2, "C:\WINDOWS\system32\shell32.dll", 10)

$icon = GUICtrlCreateIcon("shell32.dll", 10, 170, 10, 40, 40)
$icon2 = GUICtrlCreateIcon("shell32.dll", 10, 170, 50, 80, 80)

GUISetState()

While 1
    $msg = GUIGetMsg()

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
GUIDelete()

Re: [..] Adapter la taille de l'icone a celle du boutton

Posté : jeu. 27 janv. 2011 20:09
par zeshrek
Bon, je me répond a moi même...
Si on extrait le fichier .ICO de la DLL, et qu'on l'utilise, le problème ne se pose plus.

Donc du coup je me demande si y aurait pas un bug dans la gestion des DLL par Autoit.

Tlem, si tu passes par là, tu peux remonter l'info ?

Re: [..] Adapter la taille de l'icone a celle du boutton

Posté : jeu. 27 janv. 2011 20:47
par TommyDDR
Oo zeshrek !

Comment extrayez vous l'ICO d'une DLL ??
(J'ai créé un post à ce sujet aujourd'hui même :()

I beg your knowness !!

Re: [..] Adapter la taille de l'icone a celle du boutton

Posté : jeu. 27 janv. 2011 21:21
par zeshrek
Y a plein d'outils freeware qui font ca. Celui ci par exemple.

Re: [..] Adapter la taille de l'icone a celle du boutton

Posté : jeu. 27 janv. 2011 21:52
par TommyDDR
Arf... Je voulais en code source autoit ^^

Tempi, merci quand même !

Re: [..] Adapter la taille de l'icone a celle du boutton

Posté : jeu. 27 janv. 2011 22:04
par zeshrek
Désolé, j'ai pour habitude de ne pas réinventer la roue, le fil a couper, ou l'eau tiède si je peux m'en abstenir.

Re: [..] Adapter la taille de l'icone a celle du boutton

Posté : jeu. 27 janv. 2011 22:48
par TommyDDR
Oui mais quand on à besoin de cette fonction au sein d'un programme, moyen de passer par un programme externe :p

Re: [..] Adapter la taille de l'icone a celle du boutton

Posté : ven. 28 janv. 2011 00:42
par Tlem
zeshrek a écrit :Tlem, si tu passes par là, tu peux remonter l'info ?
Le mieux, ce serait que tu pose la question sur le fofo Anglais.
Là, en ce moment, je n'ai pas beaucoup de temps libre, donc je vais au plus rapide. ;)
Je n'ai pas regardé quel était le problème exacte, mais patiente pour voir si personne n’a la solution. :wink:

Re: [..] Adapter la taille de l'icone a celle du boutton

Posté : ven. 28 janv. 2011 09:28
par zeshrek
Tu as raison, je vais poster une question sur le fofo anglais.
Je posterai le retour ici... si j'en ai un ;)

Re: [..] Adapter la taille de l'icone a celle du boutton

Posté : ven. 28 janv. 2011 09:38
par Fish
Salut!

Mais zeshreck tu veut cliquer sur une icône pour faire une action c'est ca? En tout cas si c'est ca tu peut toujours notifier l'icône ou l'image dans ta GUI en rajoutant une case dans ton switch avec marqué $pic1 par exemple.

Bonne journée. :)

Re: [..] Adapter la taille de l'icone a celle du boutton

Posté : ven. 28 janv. 2011 10:14
par zeshrek
Oui, il y a plein de solutions de contournement.
Il y a celle que tu indiques, celle qu'il y a dans mon exemple (icone posé directement, sans paser par un boutton), ou même une autre a laquelle j'avais pensé aussi qui consiste a mettre non pas une icone mais un fichier image dans ma DLL pour la placer sur le boutton. Ces deux solutions ont le même inconvénient. J'arrive sans pb a mettre une image dans ma DLL (BMP ou PNG) par contre j'arrive pas a la récupérer pour la coller ensuite sur ce que je veux (un cadre image ou un boutton). Bizare, parceque selon moi ca devrait etre pareil que pour les icones....
Elles ont aussi un autre inconvénient, c'est de laisser un bug un peu casse bonbons (pour etre poli) dans autoit.
En tout cas merci pour ta proposition, je la note, en espérant malgré tout ne pas en avoir besoin.
Merci

Re: [..] Adapter la taille de l'icone a celle du boutton

Posté : ven. 28 janv. 2011 10:59
par Fish
Ok, mais j'ai testé j'y arrive à régler la taille... Tu utilise Koda?

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Test icone", 566, 443, 247, 132)
Global $Pic1 = GUICtrlCreatePic("C:\Users\xXFish-Panai-Xx\Desktop\Inutill\Images\Autoit.jpg", 32, 40, 196, 100, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
Global $Button1 = GUICtrlCreateButton("Button1", 16, 24, 227, 129, $WS_GROUP)
Global $Button2 = GUICtrlCreateButton("Button2", 248, 24, 307, 129, $WS_GROUP)
Global $Pic2 = GUICtrlCreatePic("C:\Users\xXFish-Panai-Xx\Desktop\Inutill\Images\Autoit.jpg", 296, 40, 52, 100, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
 $nMsg = GUIGetMsg()
 Switch $nMsg
  Case $GUI_EVENT_CLOSE
   Exit

 EndSwitch
WEnd
Pour l'image elle est en pièce jointe.

Re: [..] Adapter la taille de l'icone a celle du boutton

Posté : ven. 28 janv. 2011 11:56
par zeshrek
Merci Fish, mais...
Mais je suis sur un script qui va etre accompagné d'un certain ombre d'objets. Dans un premier temps ca sera 'seulement' des icones, mais j'envisage aussi d'y rajouter d'autres éléments, comme les langues de traduction, l'aide... etc.
Alors oui, je pourrais faire un installeur qui me pose tout mon petit monde dans un répertoire, mais j'aimerai faire plus propre, et don cmettre tout ce beau monde dans une DLL.
Du coup, ce que tu proposes (avoir un fichier bitmap) même si je sais le faire, je ne veux pas l'utiliser.
par contre si tu me fais la même chose, mais a partir d'une image (format de ton choix, BMP, JPG, PNG, GIF ou autre) qui se trouve dans un fichier .DLL alors là je suis preneur.

Re: [..] Adapter la taille de l'icone a celle du boutton

Posté : ven. 28 janv. 2011 12:00
par TommyDDR
zeshrek, si vous SAVEZ comment le faire à partir d'un fichier bmp / ico / etc

Je viens de résoudre mon problème d'extration de DLL.

Vous pouvez donc l'utiliser pour mettre le fichier dans @Temp (ou utiliser directement le fichier en memoir, sans passer par le disque dur si vous savez comment faire -> Je suis preneur)

Voici mon "UDF" et un simple exemple :

Code : Tout sélectionner

#include "LoadIcon.au3"

$hIcon = LoadIcon(@SystemDir & "\shell32.dll", 5)
_CreateIconFileFromHICON($hIcon, @ScriptDir & "\testt.ico")
_WinAPI_DestroyIcon($hIcon)

Re: [..] Adapter la taille de l'icone a celle du boutton

Posté : ven. 28 janv. 2011 12:10
par zeshrek
Merci TommyDDR
J'aimerai effectivement me passer d'un fichier temporaire, donc je vais voir si je peux faire tout ca en mémoire (je ne vais quand même pas faire un ram-disc pour décompacter mes ressources !).

Re: [..] Adapter la taille de l'icone a celle du boutton

Posté : ven. 28 janv. 2011 12:22
par Laddy
Bonjour à tous deux,

est ce convertir votre image en binaire ne serait il pas possible ?

un truc du genre ?
http://www.autoitscript.fr/forum/viewto ... =21&t=1490

Re: [..] Adapter la taille de l'icone a celle du boutton

Posté : ven. 28 janv. 2011 13:02
par zeshrek
En fait Laddy, l'importer dans une variable n'est pas le pb en soi. Le truc c'est d'arriver a l'utiliser ensuite.
Les pistes que vous me donnez TommyDDR et toi sont toutes les deux basées sur des scripts dont le but est de reconstituer un fichier avec le contenu de la variable.
Moi ce que je veux c'est l'utiliser sans passer par un fichier intermédiaire (si possible)

Bon, en même temps c'est pas dramatique non plus, j'ai plein d'options pour contourner le pb...

Re: [..] Adapter la taille de l'icone a celle du boutton

Posté : ven. 28 janv. 2011 14:04
par TommyDDR
Si vous avez regarder mon UDF, vous devez donc savoir que ma fonction LoadIcon($NomDLL, $Index) vous retourne un Handle vers cette icône.
Je pense qu'à partir de là vous pouvez faire quelque chose.