Page 1 sur 1
[R] Positionnement image sur label
Posté : jeu. 19 mars 2015 18:36
par pumilio
Bonjour,
Je suis confronté à un comportement que je ne m'explique pas. Lorsque je crée un label puis une image dans ma GUI, l'image se retrouve bien au dessus de ma GUI.
Lorsque je fais la même chose dans une boucle les images se positionnent sous les labels. Quelle est l'explication et comment y remédier ?
Voici le code qui illustre mon problème.
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
Opt("GuiOnEventMode", 1)
$GUI = GUICreate("GUI",500, 200, -1, -1)
$label = GUICtrlCreateLabel("A", 216, 5, 68, 70)
GUICtrlSetbkColor(-1, 0xBDC6CF)
$image = GUICtrlCreatePic(@ScriptDir&"\images.jpg",221, 10, 58, 60)
$ok = GUICtrlCreateButton("ok", 210, 160, 80, 30)
GUISetState(@SW_SHOW)
GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
GUICtrlSetOnEvent($ok, "_ok")
While 1
Sleep(100)
WEnd
Func SpecialEvents()
Select
Case @GUI_CtrlId = $GUI_EVENT_CLOSE
Exit
EndSelect
EndFunc
Func _ok()
For $i = 0 To 6
Assign("label"&$i, GUICtrlCreateLabel($i, $i*72, 80, 68, 70))
GUICtrlSetbkColor(-1, 0xBDC6CF)
Assign("image"&$i, GUICtrlCreatePic(@ScriptDir&"\images.jpg",$i*72+5, 100, 58, 60))
Next
EndFunc
Merci pour votre aide.
Re: [..] Positionnement image sur label
Posté : jeu. 19 mars 2015 18:38
par mikell
Pour des raisons de pratique je te conseille de passer par une array plutôt que par des assign
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GuiOnEventMode", 1)
Global $a[7][2]
$GUI = GUICreate("GUI",500, 200, -1, -1)
$label = GUICtrlCreateLabel("A", 216, 5, 68, 70)
GUICtrlSetbkColor(-1, 0xBDC6CF)
$image = GUICtrlCreatePic(@ScriptDir&"\images.jpg",221, 10, 58, 60)
$ok = GUICtrlCreateButton("ok", 210, 160, 80, 30)
GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
GUICtrlSetOnEvent($ok, "_ok")
GUISetState(@SW_SHOW)
While 1
Sleep(100)
WEnd
Func SpecialEvents()
Select
Case @GUI_CtrlId = $GUI_EVENT_CLOSE
Exit
EndSelect
EndFunc
Func _ok()
For $i = 0 To 6
$a[$i][0] = GUICtrlCreateLabel($i, $i*72, 80, 68, 70)
GUICtrlSetbkColor(-1, 0xBDC6CF)
$a[$i][1] = GUICtrlCreatePic("",$i*72+5, 85, 58, 60)
GuiCtrlSetImage($a[$i][1], @ScriptDir&"\images.jpg")
Next
EndFunc
Re: [..] Positionnement image sur label
Posté : lun. 23 mars 2015 11:15
par pumilio
Merci pour ta réponse mikell,
En effet utiliser une array plutôt que des assign est plus confortable.
Bonne journée