Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Taille et résolution d'écran

10 réponses
Avatar
michael
Bonjour, ceci est une question d'ordre général, peut être qqn aurait t"il une
piste...
Je fais un programme qui est déployé sur plusieurs PC ayant chacun des
tailles et des résolution différentes, donc quand je développe mon programme
sur mon petit 17'' et que je passe sur un 19'' ou avec une résolution plus
fine, je me retrouve avec de grand espaces vide sur ma forme ou j'aurais
déssiner des graphique par exemple!!
comment peut on faire pour que le programme s'adapte à la résolution de
l'écran???
merci d'avance

10 réponses

Avatar
LE TROLL
Option Explicit
Sub Form_Activate()
Dim x As Double
Dim y As Double
Dim x1 As Double
Dim y1 As Double
x = Screen.Width / Screen.TwipsPerPixelX
y = Screen.Height / Screen.TwipsPerPixelY
x1 = ScaleX(Screen.Width, vbTwips, vbCentimeters)
y1 = ScaleY(Screen.Height, vbTwips, vbCentimeters)
End Sub

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"michael" a écrit dans le message de
news:
| Bonjour, ceci est une question d'ordre général, peut être qqn aurait t"il
une
| piste...
| Je fais un programme qui est déployé sur plusieurs PC ayant chacun des
| tailles et des résolution différentes, donc quand je développe mon
programme
| sur mon petit 17'' et que je passe sur un 19'' ou avec une résolution plus
| fine, je me retrouve avec de grand espaces vide sur ma forme ou j'aurais
| déssiner des graphique par exemple!!
| comment peut on faire pour que le programme s'adapte à la résolution de
| l'écran???
| merci d'avance
Avatar
michael
merci, cela me donne la résolution de l'écran a ce que je vois... mais
ensuite que dois je faire????? je ne vois pas trop... je dois insérer cela
dans chaque formulaire?

"LE TROLL" wrote:

Option Explicit
Sub Form_Activate()
Dim x As Double
Dim y As Double
Dim x1 As Double
Dim y1 As Double
x = Screen.Width / Screen.TwipsPerPixelX
y = Screen.Height / Screen.TwipsPerPixelY
x1 = ScaleX(Screen.Width, vbTwips, vbCentimeters)
y1 = ScaleY(Screen.Height, vbTwips, vbCentimeters)
End Sub

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"michael" a écrit dans le message de
news:
| Bonjour, ceci est une question d'ordre général, peut être qqn aurait t"il
une
| piste...
| Je fais un programme qui est déployé sur plusieurs PC ayant chacun des
| tailles et des résolution différentes, donc quand je développe mon
programme
| sur mon petit 17'' et que je passe sur un 19'' ou avec une résolution plus
| fine, je me retrouve avec de grand espaces vide sur ma forme ou j'aurais
| déssiner des graphique par exemple!!
| comment peut on faire pour que le programme s'adapte à la résolution de
| l'écran???
| merci d'avance





Avatar
Martin.boucher
Salut,

Il te faudra calculer l'emplacement relative de tout les contrôles
présentes dans ta forme et affecter les nouvelles valeurs dans
l'évènement Resize de la forme.

Voici un exemple concret :


Private Sub Form_Resize()

On Error Resume Next

stbInfo.Panels(1).Width = Me.Width 2
sspProgressBar.Height = stbInfo.Height - 30

sspProgressBar.Width = (Me.Width 2) - 135
sspProgressBar.Left = stbInfo.Panels(1).Left +
stbInfo.Panels(1).Width
sspProgressBar.Top = stbInfo.Top + 30

Frame1.Width = Me.Width - 270
lvwLot.Width = Frame1.Width - 210

Frame1.Height = Me.Height - (1200)
lvwLot.Height = Frame1.Height - 755

cmdDétruire.Top = lvwLot.Top + lvwLot.Height + 75
cmdIndexer.Top = cmdDétruire.Top
cmdQuitter.Top = cmdDétruire.Top
cmdRafraîchir.Top = cmdDétruire.Top


cmdQuitter.Left = lvwLot.Left + lvwLot.Width - 1265
cmdIndexer.Left = cmdQuitter.Left - 1320
cmdRafraîchir.Left = cmdIndexer.Left - 1320

End Sub


On Thu, 21 Aug 2008 02:29:02 -0700, michael
wrote:

Bonjour, ceci est une question d'ordre général, peut être qqn aurait t"il une
piste...
Je fais un programme qui est déployé sur plusieurs PC ayant chacun des
tailles et des résolution différentes, donc quand je développe mon programme
sur mon petit 17'' et que je passe sur un 19'' ou avec une résolution plus
fine, je me retrouve avec de grand espaces vide sur ma forme ou j'aurais
déssiner des graphique par exemple!!
comment peut on faire pour que le programme s'adapte à la résolution de
l'écran???
merci d'avance


Avatar
jean-marc
"michael" wrote in message
news:
merci, cela me donne la résolution de l'écran a ce que je vois... mais
ensuite que dois je faire????? je ne vois pas trop... je dois insérer cela
dans chaque formulaire?



Hello,

la question a été abordée de très nombreuses fois, ici et ailleurs.
La solution est qu'il n'y a pas de solutions magiques. La seule
solution consiste à ajouter beaucoup de code pour redimensionner
et redimmensionner de façon pertinente les contôles, cadres, frames, etc.

On peut aussi faire des forms scrollable, etc.:
http://faq.vb.free.fr/index.php?question0

Rien de compliqué, mais du code à écrire, dans tous les cas.

Il existe des applications commerciales qui sont supposées faire cela
de façon automatique. En pratique, rien de convainquant, au contraire !

La solution à tout ça : mettre du code dans form Resize et surtout faire
un design des forms qui se prête bien au redimensionnement.

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
LE TROLL
Bonzour :o)

Ben... en fonction de la taille de l'écran, du gères la feuille,
sa taille, ce que tu mets dessus, par exemple:

select case tailleEcran
case 1
form.height = a
form.wight = b
graphique1.visible = false
graphique2.visible = false
case 2
form.height = c
form.wight = d
graphique1.visible = true
graphique2.visible = false
case 3
form.height = e
form.wight = f
graphique1.visible = true
graphique2.visible = true
end select

---
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"michael" a écrit dans le message de
news:
| merci, cela me donne la résolution de l'écran a ce que je vois... mais
| ensuite que dois je faire????? je ne vois pas trop... je dois insérer cela
| dans chaque formulaire?
|
| "LE TROLL" wrote:
|
| > Option Explicit
| > Sub Form_Activate()
| > Dim x As Double
| > Dim y As Double
| > Dim x1 As Double
| > Dim y1 As Double
| > x = Screen.Width / Screen.TwipsPerPixelX
| > y = Screen.Height / Screen.TwipsPerPixelY
| > x1 = ScaleX(Screen.Width, vbTwips, vbCentimeters)
| > y1 = ScaleY(Screen.Height, vbTwips, vbCentimeters)
| > End Sub
| >
| > --
| > Merci beaucoup, au revoir et à bientôt :o)
| > ------
| > Romans, logiciels, email, site personnel
| > http://irolog.free.fr/joe.htm
|
> ------------------------------------------------------------------------------------
| > "michael" a écrit dans le message de
| > news:
| > | Bonjour, ceci est une question d'ordre général, peut être qqn aurait
t"il
| > une
| > | piste...
| > | Je fais un programme qui est déployé sur plusieurs PC ayant chacun des
| > | tailles et des résolution différentes, donc quand je développe mon
| > programme
| > | sur mon petit 17'' et que je passe sur un 19'' ou avec une résolution
plus
| > | fine, je me retrouve avec de grand espaces vide sur ma forme ou
j'aurais
| > | déssiner des graphique par exemple!!
| > | comment peut on faire pour que le programme s'adapte à la résolution
de
| > | l'écran???
| > | merci d'avance
| >
| >
| >
Avatar
michael
ouille ouille ouille...
Bon ben merci pour votre aide à tous, je suis pas sorti de l'auberge alors ;-)


"Martin Boucher" wrote:


Salut,

Il te faudra calculer l'emplacement relative de tout les contrôles
présentes dans ta forme et affecter les nouvelles valeurs dans
l'évènement Resize de la forme.

Voici un exemple concret :


Private Sub Form_Resize()

On Error Resume Next

stbInfo.Panels(1).Width = Me.Width 2
sspProgressBar.Height = stbInfo.Height - 30

sspProgressBar.Width = (Me.Width 2) - 135
sspProgressBar.Left = stbInfo.Panels(1).Left +
stbInfo.Panels(1).Width
sspProgressBar.Top = stbInfo.Top + 30

Frame1.Width = Me.Width - 270
lvwLot.Width = Frame1.Width - 210

Frame1.Height = Me.Height - (1200)
lvwLot.Height = Frame1.Height - 755

cmdDétruire.Top = lvwLot.Top + lvwLot.Height + 75
cmdIndexer.Top = cmdDétruire.Top
cmdQuitter.Top = cmdDétruire.Top
cmdRafraîchir.Top = cmdDétruire.Top


cmdQuitter.Left = lvwLot.Left + lvwLot.Width - 1265
cmdIndexer.Left = cmdQuitter.Left - 1320
cmdRafraîchir.Left = cmdIndexer.Left - 1320

End Sub


On Thu, 21 Aug 2008 02:29:02 -0700, michael
wrote:

>Bonjour, ceci est une question d'ordre général, peut être qqn aurait t"il une
>piste...
>Je fais un programme qui est déployé sur plusieurs PC ayant chacun des
>tailles et des résolution différentes, donc quand je développe mon programme
>sur mon petit 17'' et que je passe sur un 19'' ou avec une résolution plus
>fine, je me retrouve avec de grand espaces vide sur ma forme ou j'aurais
>déssiner des graphique par exemple!!
>comment peut on faire pour que le programme s'adapte à la résolution de
>l'écran???
>merci d'avance




Avatar
LE TROLL
Heu... précisions : on parle ici de redimensionner les objets, les polices
éventuellement, certes, mais à mon avis, une petite forme est toujours plus
agréable qu'un grand machin qui prend inutilement tout l'écran, et qui,
quand il va être lancé, va masquer inutilement d'autre applications déjà
présentes (multitâches). Si par exemple tu pars avec une police taille 12,
et que ton écran futur fait un mètre sur un mètre, tu ne vas pas mettre une
police de taille 72, ce serait exorbitant !

:o)

---
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"LE TROLL" <le a écrit dans le message de news:

| Bonzour :o)
|
| Ben... en fonction de la taille de l'écran, du gères la feuille,
| sa taille, ce que tu mets dessus, par exemple:
|
| select case tailleEcran
| case 1
| form.height = a
| form.wight = b
| graphique1.visible = false
| graphique2.visible = false
| case 2
| form.height = c
| form.wight = d
| graphique1.visible = true
| graphique2.visible = false
| case 3
| form.height = e
| form.wight = f
| graphique1.visible = true
| graphique2.visible = true
| end select
|
| ---
| Romans, logiciels, email, site personnel
| http://irolog.free.fr/joe.htm
| ------------------------------------------------------------------------------------
| "michael" a écrit dans le message de
| news:
|| merci, cela me donne la résolution de l'écran a ce que je vois... mais
|| ensuite que dois je faire????? je ne vois pas trop... je dois insérer
cela
|| dans chaque formulaire?
||
|| "LE TROLL" wrote:
||
|| > Option Explicit
|| > Sub Form_Activate()
|| > Dim x As Double
|| > Dim y As Double
|| > Dim x1 As Double
|| > Dim y1 As Double
|| > x = Screen.Width / Screen.TwipsPerPixelX
|| > y = Screen.Height / Screen.TwipsPerPixelY
|| > x1 = ScaleX(Screen.Width, vbTwips, vbCentimeters)
|| > y1 = ScaleY(Screen.Height, vbTwips, vbCentimeters)
|| > End Sub
|| >
|| > --
|| > Merci beaucoup, au revoir et à bientôt :o)
|| > ------
|| > Romans, logiciels, email, site personnel
|| > http://irolog.free.fr/joe.htm
||
|
> ------------------------------------------------------------------------------------
|| > "michael" a écrit dans le message
de
|| > news:
|| > | Bonjour, ceci est une question d'ordre général, peut être qqn aurait
| t"il
|| > une
|| > | piste...
|| > | Je fais un programme qui est déployé sur plusieurs PC ayant chacun
des
|| > | tailles et des résolution différentes, donc quand je développe mon
|| > programme
|| > | sur mon petit 17'' et que je passe sur un 19'' ou avec une résolution
| plus
|| > | fine, je me retrouve avec de grand espaces vide sur ma forme ou
| j'aurais
|| > | déssiner des graphique par exemple!!
|| > | comment peut on faire pour que le programme s'adapte à la résolution
| de
|| > | l'écran???
|| > | merci d'avance
|| >
|| >
|| >
|
|
Avatar
Driss HANIB
salut michael,

sur planet-source-code un essai de control pour redimensionner
automatiquemnt tous les controles d'une feuille
http://www.Planet-Source-Code.com/vb/scripts/ShowCode.asp?txtCodeIdX420&lngWId=1
une première piste..

Driss


"michael" a écrit dans le message de
news:
ouille ouille ouille...
Bon ben merci pour votre aide à tous, je suis pas sorti de l'auberge alors
;-)


"Martin Boucher" wrote:


Salut,

Il te faudra calculer l'emplacement relative de tout les contrôles
présentes dans ta forme et affecter les nouvelles valeurs dans
l'évènement Resize de la forme.

Voici un exemple concret :


Private Sub Form_Resize()

On Error Resume Next

stbInfo.Panels(1).Width = Me.Width 2
sspProgressBar.Height = stbInfo.Height - 30

sspProgressBar.Width = (Me.Width 2) - 135
sspProgressBar.Left = stbInfo.Panels(1).Left +
stbInfo.Panels(1).Width
sspProgressBar.Top = stbInfo.Top + 30

Frame1.Width = Me.Width - 270
lvwLot.Width = Frame1.Width - 210

Frame1.Height = Me.Height - (1200)
lvwLot.Height = Frame1.Height - 755

cmdDétruire.Top = lvwLot.Top + lvwLot.Height + 75
cmdIndexer.Top = cmdDétruire.Top
cmdQuitter.Top = cmdDétruire.Top
cmdRafraîchir.Top = cmdDétruire.Top


cmdQuitter.Left = lvwLot.Left + lvwLot.Width - 1265
cmdIndexer.Left = cmdQuitter.Left - 1320
cmdRafraîchir.Left = cmdIndexer.Left - 1320

End Sub


On Thu, 21 Aug 2008 02:29:02 -0700, michael
wrote:

>Bonjour, ceci est une question d'ordre général, peut être qqn aurait
>t"il une
>piste...
>Je fais un programme qui est déployé sur plusieurs PC ayant chacun des
>tailles et des résolution différentes, donc quand je développe mon
>programme
>sur mon petit 17'' et que je passe sur un 19'' ou avec une résolution
>plus
>fine, je me retrouve avec de grand espaces vide sur ma forme ou j'aurais
>déssiner des graphique par exemple!!
>comment peut on faire pour que le programme s'adapte à la résolution
>de
>l'écran???
>merci d'avance






Avatar
David
Bonjour Michael,

J'ai retrouvé dans mes archives un programme en VB6
qui doit réagir aux résolutions d'écran.
Mais jamais utilisé "en vrai" dans un programme
Il tient même compte des combobox..
Je l'ai mis à votre intention ici :
http://users.skynet.be/DAVID/Fichiers_Tempo.htm

--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/


"michael" a écrit dans le message de
news:
Bonjour, ceci est une question d'ordre général, peut être qqn aurait t"il
une
piste...
Je fais un programme qui est déployé sur plusieurs PC ayant chacun des
tailles et des résolution différentes, donc quand je développe mon
programme
sur mon petit 17'' et que je passe sur un 19'' ou avec une résolution plus
fine, je me retrouve avec de grand espaces vide sur ma forme ou j'aurais
déssiner des graphique par exemple!!
comment peut on faire pour que le programme s'adapte à la résolution de
l'écran???
merci d'avance


Avatar
michael
Merci pour les deux dernières interventions, cela à l'air vraiment très
intéressant, je vais regarder ca de très près!!
merci a tous
bon week end!

"David" wrote:

Bonjour Michael,

J'ai retrouvé dans mes archives un programme en VB6
qui doit réagir aux résolutions d'écran.
Mais jamais utilisé "en vrai" dans un programme
Il tient même compte des combobox..
Je l'ai mis à votre intention ici :
http://users.skynet.be/DAVID/Fichiers_Tempo.htm

--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/


"michael" a écrit dans le message de
news:
> Bonjour, ceci est une question d'ordre général, peut être qqn aurait t"il
> une
> piste...
> Je fais un programme qui est déployé sur plusieurs PC ayant chacun des
> tailles et des résolution différentes, donc quand je développe mon
> programme
> sur mon petit 17'' et que je passe sur un 19'' ou avec une résolution plus
> fine, je me retrouve avec de grand espaces vide sur ma forme ou j'aurais
> déssiner des graphique par exemple!!
> comment peut on faire pour que le programme s'adapte à la résolution de
> l'écran???
> merci d'avance