Page 1 sur 1

[..] Disposer des applications comme dans une mosaique

Posté : mar. 23 mai 2017 22:38
par xeno
Bonjour

j'essaye de me faire une petite application pour afficher des flux de camera de ma maison avec vlc,
je peu fixer la dimension et la position de chaque flux, jusque là ca va.
Mais j'aimerais réussir à splitter en fonction du nombre de flux vidéo afficher par exemple que mon ecran soit divisé en 4,5,6,etc.. et que chaque flux s'affiche comme dans une mosaique., j'ai du mal a trouver une formulation pour résoudre cette idée.
lorsque je n'ai qu'une seul video je fait un bête @SW_MAXIMIZE, deux video je reprend la résolution et divise par deux la hauteur.
Mais a partir de 3 video je patauge :oops:

Si vous avez des idées ou suggestions.

Merci

PS: dans mon cas je parle de flux video avec vlc, mais cela peut tout aussi bien etre valable avec des application type, word/excel/notepad/etc..

Re: [..]Disposer des applications comme dans une mosaique

Posté : ven. 26 mai 2017 00:07
par xeno
je pense avoir un début de solution.

je converti en une aire la surface de l'écran 1920*1200=2 304 00 de cette aire je divise par le nombre de fenetres par exemple 6 soit 384 000, j'obtiens une surface pour chaque application.
je divise le nombre de fenetres par 2 et avec ce nombre je divise la largeur de l'ecran 1920/2=960 j'obtiens ma largeur et pour connaitre ma hauteur je reprend la surface de ma fenetre 384 000 que je divise par 960 soit 400 j'ai donc une dimension de mes fenetres 960 x 400.
j'ai commencé a saisir mes lignes de commandes et sur mes premier test ça fonctionne a peu près bien.

Re: [..]Disposer des applications comme dans une mosaique

Posté : ven. 26 mai 2017 23:56
par Numeric
Salut,
il te suffira de définir une variable $WidthMinimal et d'afficher ligne par ligne...tant que le nombre de truc à afficher n'est pas complet..

Exemple:
#include <GUIConstantsEx.au3>
#include <WinAPI.au3>


#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 282, 263, 192, 124)
GUISetBkColor(0x99B4D1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###



_WinAPI_ShowError("Nombre de videos à afficher = 1",False)
__GetDimensions(1)
Sleep(300)
_WinAPI_ShowError("Nombre de videos à afficher = 2",False)
__GetDimensions(2,$Form1)
Sleep(300)
_WinAPI_ShowError("Nombre de videos à afficher = 3",False)
__GetDimensions(3,$Form1)
Sleep(300)
_WinAPI_ShowError("Nombre de videos à afficher = 4",False)
__GetDimensions(4,$Form1)
Sleep(300)




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

  Case $Form1
  Case $Form1
  Case $Form1
  Case $Form1
 EndSwitch
WEnd


Func __GetDimensions($Inumber,$hwn = $Form1)
   Local $iWidth = @DesktopWidth, $iHeight = @DesktopHeight
   Local $DesktopAir = $iWidth * $iHeight
   Local $ShowNumb = $iWidth / $Inumber
   Local $GetH = $DesktopAir / $ShowNumb
   For $i = 1 To $iWidth Step $ShowNumb
      Sleep(800)
      WinMove($hwn, "", $iWidth - ($iWidth - $i), 0, $ShowNumb, $DesktopAir / $ShowNumb)
   Next
   Sleep(200)
EndFunc   ;==>__GetDimensions