[R] Démo Réorganiser les object sur axe Z (Reorder Object)

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Avatar du membre
Anthony
Niveau 6
Niveau 6
Messages : 258
Enregistré le : lun. 17 janv. 2011 14:08
Localisation : France
Contact :
Status : Hors ligne

[R] Démo Réorganiser les object sur axe Z (Reorder Object)

#1

Message par Anthony »

Bonjour à tous,

J'ai pressé la touche F1 :P
Bon dans les fonctions natives, c'est po possible :roll:
Je voulais savoir si dans les mondes parallèles il y avait un UDF :?
Pour info, MMB (Multimedia Builder) le permet :P :P :P
Ci-joint une capture d'écran.
ReorderObject.jpg

Si quelqu'un à une trouvaille je prend, ici le but est de faire passer "Before" devant "After" et je sais que AutoIt n'aime pas les chevauchements :lol:

Code : Tout sélectionner

$Button1 = GUICtrlCreateButton("Before", 5, 5, 50, 25)
$Button2 = GUICtrlCreateButton("After", 10, 10, 50, 25)
Edit: Voici la démo par mikell :wink:
Z Order.au3
(2.04 Kio) Téléchargé 7 fois
Z Order.au3
(2.04 Kio) Téléchargé 7 fois

le code https://autoitscript.fr/forum/viewtopic ... 92#p105095
Modifié en dernier par Anthony le dim. 03 mai 2020 13:24, modifié 4 fois.
J'ai été diagnostiqué pour trouble de la concentration, soyez indulgent
Merci à tous pour votre aide.
http://webfreesoftware.net Les Logiciels Gratuits
Mon [UDF]

[UDF] GuiStatusBar facile (GuiStatusBarEx.au3) viewtopic.php?f=21&t=15370

Avatar du membre
Anthony
Niveau 6
Niveau 6
Messages : 258
Enregistré le : lun. 17 janv. 2011 14:08
Localisation : France
Contact :
Status : Hors ligne

Re: [..] Réorganiser les object sur axe Z (Reorder Object)

#2

Message par Anthony »

Bon j'ai réussi à descendre tout en bas ou monter tout en haut mais Axe Z+1 ou Axe Z-1 ne fonctionne pas :shock:
Voici mon code, une idée :roll:

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <WinAPI.au3>
#include <APIConstants.au3>

$GUI = GUICreate("Test", 320, 200)
GUISetState()

$LABEL1 = GUICtrlCreateLabel("1", 20, 20, 200, 100)
GUICtrlSetBkColor(-1, 0xFF0000)
$LABEL2 = GUICtrlCreateLabel("2", 40, 40, 200, 100)
GUICtrlSetBkColor(-1, 0x00FF00)
$LABEL3 = GUICtrlCreateLabel("3", 60, 60, 200, 100)
GUICtrlSetBkColor(-1, 0x00AAFF)

Sleep(1000)
GuiCtrlSetOrderZ( $LABEL1, "FRONT")
Sleep(1000)
GuiCtrlSetOrderZ( $LABEL1, "BACK")
Sleep(1000)
GuiCtrlSetOrderZ( $LABEL1, "FORWARD")	; <--- Monte d'un niveau
Sleep(1000)
GuiCtrlSetOrderZ( $LABEL1, "BACKWARD")	; <--- Descend d'un niveau

Do
    Sleep(50)
Until GUIGetMsg() = -3
Exit

Func GuiCtrlSetOrderZ( $id_Ctrl, $Z_Order)
   ;Need to include <WinAPI.au3> and <APIConstants.au3>
   Local $hWnd = $id_Ctrl
   If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($id_Ctrl)
   If $Z_Order = "BACK"		Then	Return _WinAPI_SetWindowPos($hWnd, $HWND_TOP, 0, 0, 0, 0, $SWP_NOMOVE + $SWP_NOSIZE + $SWP_NOCOPYBITS)
   If $Z_Order = "FRONT"	Then	Return _WinAPI_SetWindowPos($hWnd, $HWND_BOTTOM, 0, 0, 0, 0, $SWP_NOMOVE + $SWP_NOSIZE + $SWP_NOCOPYBITS)
   If $Z_Order = "BACKWARD"	Then	Return _WinAPI_SetWindowPos($hWnd, $HWND_TOPMOST, 0, 0, 0, 0, $SWP_NOMOVE + $SWP_NOSIZE + $SWP_NOCOPYBITS)
   If $Z_Order = "FORWARD"	Then	Return _WinAPI_SetWindowPos($hWnd, $HWND_NOTOPMOST, 0, 0, 0, 0, $SWP_NOMOVE + $SWP_NOSIZE + $SWP_NOCOPYBITS)
 EndFunc
J'ai été diagnostiqué pour trouble de la concentration, soyez indulgent
Merci à tous pour votre aide.
http://webfreesoftware.net Les Logiciels Gratuits
Mon [UDF]

[UDF] GuiStatusBar facile (GuiStatusBarEx.au3) viewtopic.php?f=21&t=15370

Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 1864
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Réorganiser les object sur axe Z (Reorder Object)

#3

Message par TommyDDR »

Pour m'être creusé la tête un bon moment dessus à une époque.. je crois qu'il n'est pas possible de le faire en AutoIt :(
(J'espère me tromper)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5973
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Réorganiser les object sur axe Z (Reorder Object)  

#4

Message par mikell »

Quelque chose comme ça ?

#include <GUIConstantsEx.au3>
#include <WinAPI.au3>
#include <APIConstants.au3>

$GUI = GUICreate("Test", 340, 220)
GUISetState()

$LABEL1 = GUICtrlCreateLabel("1", 20, 20, 200, 100)
GUICtrlSetBkColor(-1, 0xFF0000)
$LABEL2 = GUICtrlCreateLabel("2", 40, 40, 200, 100)
GUICtrlSetBkColor(-1, 0x00FF00)
$LABEL3 = GUICtrlCreateLabel("3", 60, 60, 200, 100)
GUICtrlSetBkColor(-1, 0x00AAFF)
$LABEL4 = GUICtrlCreateLabel("4", 80, 80, 200, 100)
GUICtrlSetBkColor(-1, 0xFFCC00)
$LABEL5 = GUICtrlCreateLabel("5", 100, 100, 200, 100)
GUICtrlSetBkColor(-1, 0xDDDDDD)

Sleep(1000)
GuiCtrlSetOrderZ( $LABEL1, "FORWARD", 2)  ; <--- Monte de 2 niveaux
Sleep(1000)
GuiCtrlSetOrderZ( $LABEL1, "FORWARD")  ; <--- Monte d'un niveau
Sleep(1000)
GuiCtrlSetOrderZ( $LABEL1, "FRONT")
Sleep(1000)
GuiCtrlSetOrderZ( $LABEL1, "BACKWARD", 2) ; <--- Descend de 2 niveaux
Sleep(1000)
GuiCtrlSetOrderZ( $LABEL1, "BACKWARD") ; <--- Descend d'un niveau
Sleep(1000)
GuiCtrlSetOrderZ( $LABEL1, "BACK")

Do
    Sleep(50)
Until GUIGetMsg() = -3
Exit

Func GuiCtrlSetOrderZ( $id_Ctrl, $Z_Order, $step = 1)
   ;Need to include <WinAPI.au3> and <APIConstants.au3>
   Local $hWnd = $id_Ctrl
   If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($id_Ctrl)
  Switch $Z_Order
      Case "BACK"
   Return _WinAPI_SetWindowPos($hWnd, $HWND_TOP, 0, 0, 0, 0, $SWP_NOMOVE + $SWP_NOSIZE + $SWP_NOCOPYBITS)
      Case "FRONT"
   Return _WinAPI_SetWindowPos($hWnd, $HWND_BOTTOM, 0, 0, 0, 0, $SWP_NOMOVE + $SWP_NOSIZE + $SWP_NOCOPYBITS)
      Case "BACKWARD"
   $hPrev = $hWnd
   For $i = 1 to $step+1
      $hPrev = _WinAPI_GetWindow($hPrev, $GW_HWNDPREV)
   Next
   Return _WinAPI_SetWindowPos($hWnd, $hPrev, 0, 0, 0, 0, $SWP_NOMOVE + $SWP_NOSIZE + $SWP_NOCOPYBITS)
      Case "FORWARD"
   $hNext = $hWnd
   For $i = 1 to $step
      $hNext = _WinAPI_GetWindow($hNext, $GW_HWNDNEXT)
   Next
   Return _WinAPI_SetWindowPos($hWnd, $hNext, 0, 0, 0, 0, $SWP_NOMOVE + $SWP_NOSIZE + $SWP_NOCOPYBITS)
  EndSwitch
 EndFunc

Faut pas sous-estimer AutoIt ... Image
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

Avatar du membre
Anthony
Niveau 6
Niveau 6
Messages : 258
Enregistré le : lun. 17 janv. 2011 14:08
Localisation : France
Contact :
Status : Hors ligne

Re: [..] Réorganiser les object sur axe Z (Reorder Object)

#5

Message par Anthony »

Toujours au Top et merci à tous les deux :wink: Bon le sujet est résolu :bisou:
PS: Je suis pas gay :lol:
J'ai été diagnostiqué pour trouble de la concentration, soyez indulgent
Merci à tous pour votre aide.
http://webfreesoftware.net Les Logiciels Gratuits
Mon [UDF]

[UDF] GuiStatusBar facile (GuiStatusBarEx.au3) viewtopic.php?f=21&t=15370

Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 1864
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [R] Démo Réorganiser les object sur axe Z (Reorder Object)

#6

Message par TommyDDR »

Mikell le sauveur <3
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679

Avatar du membre
Anthony
Niveau 6
Niveau 6
Messages : 258
Enregistré le : lun. 17 janv. 2011 14:08
Localisation : France
Contact :
Status : Hors ligne

Re: [R] Démo Réorganiser les object sur axe Z (Reorder Object)

#7

Message par Anthony »

Tout le monde :wink: :mrgreen:
J'ai été diagnostiqué pour trouble de la concentration, soyez indulgent
Merci à tous pour votre aide.
http://webfreesoftware.net Les Logiciels Gratuits
Mon [UDF]

[UDF] GuiStatusBar facile (GuiStatusBarEx.au3) viewtopic.php?f=21&t=15370

Répondre