[R] Rendre fenêtre Gui proportionnelle aux écrans PC et TV

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

[R] Rendre fenêtre Gui proportionnelle aux écrans PC et TV

#1

Message par Boulanza »

Bonjour
Je vous prie de me guider pour rendre mes fenêtres Gui et leurs contenus proportionnels à tous les écrans : ordinateurs et TV.
Cordialement.
► Afficher le texte
Modifié en dernier par Boulanza le mar. 01 sept. 2015 21:42, modifié 1 fois.
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [..] Rendre fenêtre Gui proportionnelle aux écrans PC et

#2

Message par Boulanza »

Pas de réponse, donc pas de solution à mon cas... !
Merci de répondre.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Rendre fenêtre Gui proportionnelle aux écrans PC et

#3

Message par mikell »

Ta question n'est pas assez précise, tu veux quoi exactement ? centrer les controles, modifier leur taille et/ou celle de la police utilisée, ou autre chose ?
@desktopWidth et @desktopHeight fonctionnent bien
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [..] Rendre fenêtre Gui proportionnelle aux écrans PC et

#4

Message par Boulanza »

Merci pour votre réponse.
@desktopWidth et @desktopHeight sont dans mes Gui, mon pc à comme résolution (Écran) : 1280x1024, lorsque je teste mes applications sur pc 14,13 ,11 et 10 pouces on ne voie que 5% du contenu de ma Gui.
$Form1=GUICreate("" , @DesktopWidth /800*@DesktopWidth, @DesktopHeight /600* @DesktopHeight,0, 0, $WS_POPUP, $WS_EX_TOPMOST )
avec une résolution de 800x600 pixels j'arrive à voir 50% du contenu de ma Gui avec un PC 10 pouce.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Rendre fenêtre Gui proportionnelle aux écrans PC et

#5

Message par mikell »

C'est un problème de gestion de la résolution

Code : Tout sélectionner

GUICreate("Information", @desktopWidth, @desktopHeight, 0, 0
Cette gui va faire 1280 px de large sur ton écran mais seulement 800 px de large sur un écran 800x600
Par contre un controle défini à 1250 px de largeur aura la même taille sur les 2 écrans, donc sur l'écran 800 on n'en verra que les 2/3
Tu dois calculer un coefficient qui tient compte de la résolution de ton pc (1280 et 1024) et de celle du pc de l'utilisateur (@desktopWidth et @desktopHeight), et l'utiliser pour le positionnement et la taille des controles
Exemple :
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [..] Rendre fenêtre Gui proportionnelle aux écrans PC et

#6

Message par Boulanza »

Bonjour,
Oui Mikell, ça marche sur mon PC avec les conditions que vous m’avez prescrites plus haut, mais une fois tester sur des pc qui ont une résolution différente du mien, tous les textes sont de travers ( pas de mise en forme). Avez-vous une autre solution à ce problème.
Cordialement.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Rendre fenêtre Gui proportionnelle aux écrans PC et

#7

Message par mikell »

C'est probablement parce qu'il faut adapter aussi la taille de la police
http://autoitscript.fr/forum/viewtopic. ... &hilit=ppp
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [..] Rendre fenêtre Gui proportionnelle aux écrans PC et

#8

Message par Boulanza »

la taille de la police est déjà adapter aussi.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Rendre fenêtre Gui proportionnelle aux écrans PC et

#9

Message par jguinch »

On peut faire comme ça aussi :
► Afficher le texte
J'ai pris le code ici : http://www.autoitscript.fr/forum/viewto ... =4&t=12049 (qui a lui-même été pris sur le forum US)
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Rendre fenêtre Gui proportionnelle aux écrans PC et

#10

Message par mikell »

Oui, à condition que la gui soit construite avec une taille max de 800x600
Melba dit bien "You might want to create your GUI for the lowest resolution you are likely to face and allow it to be resized but keeping the same aspect ratio"
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [..] Rendre fenêtre Gui proportionnelle aux écrans PC et

#11

Message par Boulanza »

Bonjour.
Vous avez raison, il faut que la gui soit construite avec une taille max de 800x600 ( Ou moins) avec avec l'adaptation aussi de la taille de la police; ça marche, mais j'ai un déplacement de la fenêtre de la Gui vers l’adroite de l'écran avec pc 14,13 et 10 pouces. Y a t-il une raison à cela ?

Cordialement.
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [..] Rendre fenêtre Gui proportionnelle aux écrans PC et

#12

Message par Boulanza »

Bonjour Tout le monde,
Comme dit le grand-père de Mikell : la solution la plus simple est toujours la meilleure. Merci grand-père.
$FormFr001 = GUICreate("Information", 1280, 720,-1, -1)
ça marche sur tout les PC de 9 à 22 pouces et plus !
A vous de choisir soit l'idée de Maikell ou de jguinch ou une combinaison des deux.
Je laisse ouvert pour vos commentaires sur le sujet.
Cordialement.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Rendre fenêtre Gui proportionnelle aux écrans PC et

#13

Message par mikell »

Ya comme un gros mélange entre la taille de l'écran en pouces et la résolution
La résolution peut varier d'un écran à l'autre mais les pouces n'ont rien à voir là-dedans ^^
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Boulanza
Niveau 9
Niveau 9
Messages : 697
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [..] Rendre fenêtre Gui proportionnelle aux écrans PC et

#14

Message par Boulanza »

Je suis d"accord avec vous, je voulais juste vous montrer que vos propositions marchent bien sur les écrans pc et monteurs TV sans aucune déformation de l'image (Gui) ou de son contenu.
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [R] Rendre fenêtre Gui proportionnelle aux écrans PC et

#15

Message par Hugues »

Bonjour,

Je me permets de m'incruster dans ce post car je suis aussi dans le redimensionnement de GUI...

Je souhaite afficher un GUI sur PC et sur écran TV aussi.

Pour le ratio largeur d'écran c'est OK, mais pour le ratio vertical je n'arrive pas à trouver la solution...

Si quelqu'un à une idea ^^

Ci-joint mon code:

Merci par avance:

Code : Tout sélectionner

[spoiler=]
;==[Options]==================
Opt("GUIOnEventMode", 1)
Opt("MouseCoordMode", 2)

;==[Includes]=================
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>
#Include <File.au3>
#include <Array.au3>
#include <Timers.au3>
#include <GuiStatusBar.au3>
#include <Color.au3>
#include <Date.au3>
#include <GuiListView.au3>
#include <StringSize.au3>
#include <StaticConstants.au3>
#include <MsgBoxConstants.au3>
#include <GuiImageList.au3>
#include <GuiButton.au3>

;==[Variables Globales]=======
Global $MainGUI, $ApplicationName, $iTimer1, $hStatus, $aParts[4] = [200, 450, 700, 200], $Color1 = 0x000000, $Color2 = 0x00f0ff, $InputMessage, $AvReValue, $AvReResult, $AvRe
Global  $Title, $MAJAvRe, $Capacity, $CapacityTitle
Global $Label, $TextLabel, $LabelResult, $LabelValue, $CapaDayNivOnGoing, $CapaHourNivBasePOT, $CapaNextPerNiv, $MAJCapacite, $Label2, $TextLabel2, $LabelResult2, $LabelValue2
Global $LabelResult2, $LabelValue2, $LabelResult3, $LabelValue3, $Label4, $TextLabel4, $Label5, $TextLabel5, $Label6, $TextLabel6, $Label7, $TextLabel7
Global $CreneauTPM, $InfoLigne, $CoefW, $CoefH, $Width = 800, $Height = 600, $HeightControl, $TopSpaceControl = 4, $Left = 5

;$HeightControl = Hauteur des labels
;$TopSpaceControl = Espace entre chaque Control

_Ini()
_Main()

AdlibRegister("_ScreenAdaptation")
GUIRegisterMsg($WM_SIZE, "WM_SIZE")
GUIRegisterMsg($WM_TIMER, "WM_TIMER")

While GUIGetMsg() <> -3
WEnd

Func _Ini()
    $CoefW = @DesktopWidth / $Width
    $CoefH = @DesktopHeight / $Height
    $HeightControl = 80
    $ApplicationName = @UserName
    $AvReValue = "1000"
    $MAJAvRe = "1000"
    $CapaDayNivOnGoing = "1000"
    $CapaHourNivBasePOT = "1000"
    $CapaNextPerNiv = "1000"
    $MAJCapacite = "1000"
    $CreneauTPM = "1000"
    $InfoLigne = "1000"
EndFunc ;==>_Ini()

Func _Main()
    $MainGUI = GUICreate($ApplicationName & " - Powered by Me", $Width * $CoefW, $Height * $CoefH, -1, -1, $WS_POPUP)
    GUISetIcon(@ScriptDir & "\Ini\graph.ico", -2, $MainGUI)
    $Size = WinGetClientSize($MainGUI)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    $hStatus = _GUICtrlStatusBar_Create($MainGUI, -1, "", $SBARS_TOOLTIPS)
    _GUICtrlStatusBar_SetParts($hStatus, $aParts)
    DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", $hStatus, "wstr", 0, "wstr", 0)
    $hIcons = _WinAPI_LoadShell32Icon(265)
    _GUICtrlStatusBar_SetIcon($hStatus, 0, $hIcons)
    $hIcons2 = _WinAPI_LoadShell32Icon(170)
    _GUICtrlStatusBar_SetIcon($hStatus, 1, $hIcons2)
    $hIcons3 = _WinAPI_LoadShell32Icon(238)
    _GUICtrlStatusBar_SetIcon($hStatus, 2, $hIcons3)
    $hIcons4 = _WinAPI_LoadShell32Icon(172)
    _GUICtrlStatusBar_SetIcon($hStatus, 3, $hIcons4)
    GUIRegisterMsg($WM_TIMER, "WM_TIMER")
    $iTimer1 = _Timer_SetTimer($MainGUI, 1000)
    _GUICtrlStatusBar_SetText($hStatus, StringUpper(@username) & " on " & @ComputerName & " (" & @IPAddress1 & ")", 1)
    _GUICtrlStatusBar_SetText($hStatus, $ApplicationName & " - Powered by Me", 3)

    $Title = GUICtrlCreateLabel("", $Left, 5, $Width * $CoefW - 10, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
    $TextTitle = "Entête 1"
    GUICtrlSetData($Title, $TextTitle)
    GUICtrlSetFont(-1, 46, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0x00FF00)
    GUICtrlSetColor($Title, 0x000000)

    $AvRe = GUICtrlCreateLabel("", $Left, $TopSpaceControl + $HeightControl, ($Width * $CoefW - 10) / 2, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
    $Textx = "TEXTE 1"
    GUICtrlSetData($AvRe, $Textx)
    GUICtrlSetFont(-1, 24, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xFF0000)
    GUICtrlSetColor($Title, 0x000000)

    $AvReResult = GUICtrlCreateLabel("", (($Width * $CoefW) / 2) ,$TopSpaceControl + $HeightControl, ($Width * $CoefW - 10) / 2, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
    GUICtrlSetData($AvReResult, $AvReValue)
    GUICtrlSetFont(-1, 44, 400, 0, "Arial")

    ;------------------------------------------------------------------------------------------------------------------------------------------------------
    $Capacity = GUICtrlCreateLabel("", $Left, $TopSpaceControl + $HeightControl * 3, $Width * $CoefW - 10, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
    $CapacityTitle = "Entête 2"
    GUICtrlSetData($Capacity, $CapacityTitle)
    GUICtrlSetFont(-1, 46, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0x00FF00)
    GUICtrlSetColor($Capacity, 0x000000)

    $Label = GUICtrlCreateLabel("", $Left, $CoefH * ($TopSpaceControl + 80 + 133), ($Width * $CoefW - 10) / 2, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
    $TextLabel = "TEXTE 2"
    GUICtrlSetData($Label, $TextLabel)
    GUICtrlSetFont(-1, 24, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xFF0000)
    ;GUICtrlSetColor($Label, 0x000000)

    $LabelResult = GUICtrlCreateLabel("", (($Width * $CoefW) / 2), $CoefH * ($TopSpaceControl + 80 + 133), ($Width * $CoefW - 10) / 2, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
    GUICtrlSetData($LabelResult, $CapaDayNivOnGoing)
    GUICtrlSetFont(-1, 44, 400, 0, "Arial")

    $Label2 = GUICtrlCreateLabel("", $Left, $CoefH * ($TopSpaceControl + 160 + 106), ($Width * $CoefW - 10) / 2, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
    $TextLabel2 = "TEXTE 3"
    GUICtrlSetData($Label2, $TextLabel2)
    GUICtrlSetFont(-1, 24, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xFF0000)

    $LabelResult2 = GUICtrlCreateLabel("", (($Width * $CoefW) / 2), $CoefH * ($TopSpaceControl + 160 + 106), ($Width * $CoefW - 10) / 2, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
    GUICtrlSetData($LabelResult2, $CapaHourNivBasePOT)
    GUICtrlSetFont(-1, 44, 400, 0, "Arial")

    $Label3 = GUICtrlCreateLabel("", $Left, $CoefH * ($TopSpaceControl + 160 + 159), ($Width * $CoefW - 10) / 2, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
    $TextLabel3 = "TEXTE 4"
    GUICtrlSetData($Label3, $TextLabel3)
    GUICtrlSetFont(-1, 24, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xFF0000)

    $LabelResult3 = GUICtrlCreateLabel("", (($Width * $CoefW) / 2), $CoefH * ($TopSpaceControl + 160 + 159), ($Width * $CoefW - 10) / 2, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
    GUICtrlSetData($LabelResult3, $CapaNextPerNiv)
    GUICtrlSetFont(-1, 44, 400, 0, "Arial")

    $Capacity = GUICtrlCreateLabel("", $Left, $CoefH * ($TopSpaceControl + 160 + 257), $Width * $CoefW - 10, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
    $CapacityTitle = "Entête 3"
    GUICtrlSetData($Capacity, $CapacityTitle)
    GUICtrlSetFont(-1, 46, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0x00FF00)

    $Label4 = GUICtrlCreateLabel("", $Left, 655 + 55, (($Width * $CoefW) / 4) - 10, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
    $TextLabel4 = "TEXTE 5"
    GUICtrlSetData($Label4, $TextLabel4)
    GUICtrlSetFont(-1, 24, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xFF0000)

    $Label5 = GUICtrlCreateLabel("", (($Width * $CoefW) / 4) - 4, 655 + 55, ((($Width * $CoefW) / 4) * 3) - 2, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
    $TextLabel5 = $CreneauTPM
    GUICtrlSetData($Label5, $TextLabel5)
    If StringLen($CreneauTPM) > 42 Then
        GUICtrlSetFont(-1, 24, 400, 0, "Arial")
    Else
        GUICtrlSetFont(-1, 44, 400, 0, "Arial")
    EndIf

    $Label6 = GUICtrlCreateLabel("", $Left, 736 + 55, (($Width * $CoefW) / 4) - 10, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
    $TextLabel6 = "TEXTE 6"
    GUICtrlSetData($Label6, $TextLabel6)
    GUICtrlSetFont(-1, 24, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, 0xFF0000)

    $Label7 = GUICtrlCreateLabel("", (($Width * $CoefW) / 4) - 4, 736 + 55, ((($Width * $CoefW) / 4) * 3) - 2, $HeightControl, BitOR($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_CLIENTEDGE)
    $TextLabel7 = $InfoLigne
    GUICtrlSetData($Label7, $TextLabel7)
    If StringLen($InfoLigne) > 42 Then
        GUICtrlSetFont(-1, 24, 400, 0, "Arial")
    Else
        GUICtrlSetFont(-1, 44, 400, 0, "Arial")
    EndIf

    GUISetState()
EndFunc   ;==>_Main()

Func WM_SIZE($hWnd, $iMsg, $iwParam, $ilParam)
    #forceref $hWnd, $iMsg, $iwParam, $ilParam
    _GUICtrlStatusBar_Resize($hStatus)
    GUICtrlSetResizing($InputMessage, $GUI_DOCKBORDERS)
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_SIZE

Func _ScreenAdaptation()
    $WorkAera = _GetWorkArea() ;Etait Local $WorkAera = _GetWorkArea() et non Global
    Local $aGuiPos = WinGetPos($MainGUI)

    If $aGuiPos[0] <> $WorkAera[0] Or $aGuiPos[1] <> $WorkAera[1] Or $aGuiPos[2] <> $WorkAera[4] Or $aGuiPos[3] <> $WorkAera[5] Then WinMove($MainGUI, "", $WorkAera[0], $WorkAera[1], $WorkAera[4], $WorkAera[5])
    Return $WorkAera
EndFunc   ;==>_ScreenAdaptation

Func _GetWorkArea()
    Global $Area[6]
    Local $StartRect = DllStructCreate("int[4]")
    Local $PStartRect = DllStructGetPtr($StartRect)
    DllCall("user32.dll", "int", "SystemParametersInfo", "int", 48, "int", 0, "ptr", $PStartRect, "int", 0)
    $Area[0] = DllStructGetData($StartRect, 1, 1)
    $Area[1] = DllStructGetData($StartRect, 1, 2)
    $Area[2] = DllStructGetData($StartRect, 1, 3)
    $Area[3] = DllStructGetData($StartRect, 1, 4)
    $Area[4] = $Area[2] - $Area[0]
    $Area[5] = $Area[3] - $Area[1]
    Return $Area
EndFunc   ;==>_GetWorkArea

Func WM_TIMER($hWnd, $iMsg, $iwParam, $ilParam)
    #forceref $hWnd, $iMsg, $ilParam
    Switch _Timer_GetTimerID($iwParam)
        Case $iTimer1
            _UpdateStatusBarClock()
        EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_TIMER

Func _UpdateStatusBarClock()
    _GUICtrlStatusBar_SetText($hStatus, @TAB & StringFormat(_NowDate() & " " & "%02d:%02d:%02d", @HOUR, @MIN, @SEC), 0)
EndFunc   ;==>_UpdateStatusBarClock()

Func _Exit()
    Exit
EndFunc   ;==>_Exit()
[/spoiler]
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [R] Rendre fenêtre Gui proportionnelle aux écrans PC et

#16

Message par Hugues »

Je me demande s'il ne faut pas que j'utilise la fonction _StringSize()...
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Rendre fenêtre Gui proportionnelle aux écrans PC et

#17

Message par mikell »

Pour avoir déjà testé je te confirme que c'est une très bonne idée (pour les controles)
Melba23 a écrit :Description ...: Returns size of rectangle required to display string - width can be chosen
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Répondre