Image.top et image.left

Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015 - 22 mars 2012 à 13:21
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 26 mars 2012 à 13:36
Salut à tous !

Voilà, j'ai :
- Une image (Pic_Barre) de longueur variable et de largeur 615
- Une image (Wallpaper) de longeur et de largeur plus grande que l'écran
- Une résolution d'écran variable

Je souhaiterai donc :
- Mettre ma Pic_Barre.top tout en bas du Wallpaper
- Mettre ma Pic_Barre.left tout à gauche du Wallpaper.

Sachant que le Wallpaper est centré à l'écran par :
Wallpaper.Left = (Me.Width - Wallpaper.Width) / 2
Wallpaper.Top = (Me.Height - Wallpaper.Height) / 2

La Pic_Barre doit être de gauche à l'écran et pas du wallpaper.

Le but est de faire une barre de tâche pour mon appli, disposé comme celle de Windows et variable (la position) selon la résolution de l'écran.

Pouvez-vous m'aider svp à corriger mon code et à disposer ma Pic_Barre ?

Voici le code déjà utilisé :
Private Sub TimeWallpaper_Timer()
LongEcran.Caption = Screen.Width
LargEcran.Caption = Screen.Height
Wallpaper.Left = (Me.Width - Wallpaper.Width) / 2
Wallpaper.Top = (Me.Height - Wallpaper.Height) / 2
Pic_Barre.Width = LongEcran.Caption
Pic_Barre.Left = (Wallpaper.Width - Pic_Barre.Width) / 2
Pic_Barre.Top = Screen.Height   'Problème
TimeWallpaper.Enabled = False
End Sub


Merci

----------
OS : Windows XP SP3 et Vista 32
Platforme : VB 6.0 + SP6
Ok VB6.0 c'est pas net !

9 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 mars 2012 à 16:46
Bonjour,
1) Pourquoi passer par des labels pour y écrire, puis y relire largeur et hauteur de l'écran ? ===>> ce sont des variables numériques, qu'il te faut simplement utiliser .
2) quel est le type de contrôle de Wallpaper ? Idem pour pic_barre
3) je ne vois nulle part la moindre référence au container principal (ton Form), sauf pour le positionnement de Wallpaper.
4) en quelle échelle est ton Form ? Et si par ailleurs, pic_barre et Wallpaper étaient des Pictureboxes : en quelle échelle ?
Toutes ces interrogations sur des imprécisions font qu'il est quasi impossible de te répondre sur le reste.



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
22 mars 2012 à 17:29
Merci de me répondre ucfoutu,

1- Heuu... c'est juste une référence avant de terminer la fenêtre, c'était pour voir combien de pixel était mon écran lors d'un affichage 1024*768 et 1600*900 et autre...

2- Wallppaer et le Pic_Barre sont des PictureBox

3- La form est en affichage maximisé et centrée au démarrage de l'application
BorderStyle : 0- None
StartUpPosiiton : 2- CenterScreen
WindowState : 2- Maximized

4- Wallpaper.PictureBox est une image de fond dans lequel il y a (à l'intérieure) les autres éléments dont le Pic_Barre.PictureBox

J'ai créé une fenêtre standard avec les référence du 3ème point.
J'y ai insérée une picturebox nommée Wallpaper avec des valeur AutoSize = True
J'ai insérer dans le Wallpaper une autre image nommée Pic_Barre de hauteur 613 et de longueur variable selon la résolution.

Le positionnement du Pic_Barre de gauche est pour l'instant réussit.
Par contre celui de la hauteur me cause un problème...

Voilà :P hihi, j'espère avoir été explicite :D
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 mars 2012 à 17:53
613 quoi ? j'espère que ce ne sont pas des unités en échelle de pixels !
Tu veux donc ta picturebox pic-barre dans la picturebox Wallpaper, en bas et à gauche ?
Et que vient faire là-dedans la largeur de l'écran ? Rien, puisque largeur visible de pic_barre alors forcément <= largeur de son container (Wallpaper) !

De toutes manières et quel que soit le positionnement de Wallpaper :
 Set pic_bar.Container = wallpaper
  pic_bar.Height = 613
  pic_bar.Move 0, wallpaper.Height - pic_bar.Height, wallpaper.Width, pic_bar.Height


fera ce que tu décris, dans la mesure ou les échelles sont toutes les mêmes, tant pour ton Form que pour les 2 picturesboxes.

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
26 mars 2012 à 11:01
Salut,

Non ce code ne fait rien, je ne vois pas la Pic_Barre à l'écran, le wallpaper n'est pas centré...
Private Sub TimeWallpaper_Timer()
LongEcran.Caption = Screen.Width
LargEcran.Caption = Screen.Height
Wallpaper.Left = (Me.Width - Wallpaper.Width) / 2
Wallpaper.Top = (Me.Height - Wallpaper.Height) / 2
Pic_Barre.Width = LongEcran.Caption
Pic_Barre.Left = (Wallpaper.Width - Pic_Barre.Width) / 2
Pic_Barre.top = Screen.Height 'Affiche la Pic_Barre un peux plus haut que le bas de l'écran
End Sub

Par contre, avec un affiche de 1600*900, si je met ce code :
Pic_Barre.Top = Screen.Height + 615 * 3 - 210

Il affiche exactement là où je souhaite qu'il soit.
Si la résolution change bien entendu, il n'est plus à sa place.

Y a t-il une "autre" solution svp ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
26 mars 2012 à 11:47
Je ne comprends plus du tout ce que tu cherches à obtenir .
Peux-tu nous mettre ici un screenshot (de la totalité de ton écran) montrant le résultat que tu veux ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
26 mars 2012 à 12:11
Oui bien-sûr !

Je met en zip l'appli pour être plus claire :
Appli (2,04Mo)
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
26 mars 2012 à 12:55
Non !
ce n'est pas ton appli, que j'ai demandé (d'autant que non satisfaisante) !
Pour mémoire, donc :
Peux-tu nous mettre ici un screenshot (de la totalité de ton écran) montrant le résultat que tu veux ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
26 mars 2012 à 13:28
Désolé,

Image de la form
Image affiché actuellement sous le code :
Private Sub TimeWallpaper_Timer()
Wallpaper.Left = (Me.Width - Wallpaper.Width) / 2
Wallpaper.Top = (Me.Height - Wallpaper.Height) / 2
Pic_Barre.Width = Screen.Width
Pic_Barre.Left = (Wallpaper.Width - Pic_Barre.Width) / 2

End Sub

Image de l'effet attendu
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
26 mars 2012 à 13:36
Ah !
Ta question portait sur le positionnement de pic_bar, par rapport à Wallpaper.
Et le code que je t'ai montré fait ce que tu veux !

Tout ceci est indépendant (et à dissocier) d'un redimensionnement et d'un repositionnement de Wallpaper en fonction de la résolution.
Or, ce redimensionnement doit intervenir avant mon code et n'a rien à voir avec ta demande, telle que posée, à savoir :
Je souhaiterai donc :
- Mettre ma Pic_Barre.top tout en bas du Wallpaper
- Mettre ma Pic_Barre.left tout à gauche du Wallpaper.



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Rejoignez-nous