OVH Cloud OVH Cloud

Affichage en Maximize

3 réponses
Avatar
Cerveza
Bonsoir à vous tous,

J'affiche un petit formulaire (environ 10 cm de large par 8 cm de haut) en
utilisant DoCmd.Maximaize à l'ouverture (_Load), avec Access 2003. Le
problème est que je ne connais pas ni la largeur, ni la hauteur de ma fenêtre
d'affichage (qui dépendent de la résolution de l'écran de l'utilisateur), de
telle sorte que je ne peux pas centrer mes contrôles par programmation, ni
les déplacer à des endroits appropriés en fonction de l'espace disponible.

Comment connaître (en twips) la largeur et la hauteur de ma fenêtre
d'affichage (en Maximize) en fonction de la résolution de l'écran de
l'utilisateur?

Merci de m'enrichir de vos connaissances.
--
On naît tous ignorant
@+
Cerveza

3 réponses

Avatar
3stone
Salut,

"Cerveza"
| J'affiche un petit formulaire (environ 10 cm de large par 8 cm de haut) en
| utilisant DoCmd.Maximaize à l'ouverture (_Load), avec Access 2003. Le
| problème est que je ne connais pas ni la largeur, ni la hauteur de ma fenêtre
| d'affichage (qui dépendent de la résolution de l'écran de l'utilisateur), de
| telle sorte que je ne peux pas centrer mes contrôles par programmation, ni
| les déplacer à des endroits appropriés en fonction de l'espace disponible.
|
| Comment connaître (en twips) la largeur et la hauteur de ma fenêtre
| d'affichage (en Maximize) en fonction de la résolution de l'écran de
| l'utilisateur?


Tu peux faire quelque chose comme ceci :

DoCmd.Maximize
Dim ctl As Control
For Each ctl In Me.Controls
ctl.Left = (Me.InsideWidth / 2) - (ctl.Width / 2)
Next ctl

ce qui centrera tes objets horizontalement...

Et, puisque tu fait de toute facon un "maximize", je te conseille de prévoir
ton formulaire pour une résolution de 1024 x 768 par exemple.
Il suffit pour cela d'agrandir ton formulaire, de sélectionner tous les objets
et de les déplacer "au centre" du formulaire.
Ensuite, avec le code, cela s'adaptera suffisement...

C'est ce que j'utilise pour la saisie d'un PSW ;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Cerveza
Bonsoir 3stones,

Merci beaucoup pour ta réponse.
J'ai trouvé la référence
«http://access.jessy.free.fr/htm/DownLoad/AutoResize.htm» que tu dois
certainement connaître. Elle fait ce que j'attendais (après quelques légères
adaptations).

Je ne peux pas faire un formulaire commun à tous mes utilisateurs: certains
travaillent en 800x600, d'autres en 1024 par 768 et d'autres plus grands
encore. Certains veulent travailler en formulaire, d'autres en feuilles de
données. Certains ne travaillent qu'en mode Maximisé et d'autre en format
réduit. J'ai aussi des vieux qui veulent que tous les contrôles
s'agrandissent en format maximisé. Tu vois le topo! L'approche de Jessy me
permet de satisfaire tout le monde.

Merci encore. Tiens une question de dernière minute, si tu as la réponse...
Comment puis-je empêcher un utilisateur de quitter une fenêtre sans la
fermer quand il est en Feuille de données? La fenêtre modale ne s'applique
que pour les présentations en mode formulaire. Comment limiter l'utilisateur
quand il est en mode de feuille de données?

--
On naît tous ignorant
@+
Cerveza



Salut,

"Cerveza"
| J'affiche un petit formulaire (environ 10 cm de large par 8 cm de haut) en
| utilisant DoCmd.Maximaize à l'ouverture (_Load), avec Access 2003. Le
| problème est que je ne connais pas ni la largeur, ni la hauteur de ma fenêtre
| d'affichage (qui dépendent de la résolution de l'écran de l'utilisateur), de
| telle sorte que je ne peux pas centrer mes contrôles par programmation, ni
| les déplacer à des endroits appropriés en fonction de l'espace disponible.
|
| Comment connaître (en twips) la largeur et la hauteur de ma fenêtre
| d'affichage (en Maximize) en fonction de la résolution de l'écran de
| l'utilisateur?


Tu peux faire quelque chose comme ceci :

DoCmd.Maximize
Dim ctl As Control
For Each ctl In Me.Controls
ctl.Left = (Me.InsideWidth / 2) - (ctl.Width / 2)
Next ctl

ce qui centrera tes objets horizontalement...

Et, puisque tu fait de toute facon un "maximize", je te conseille de prévoir
ton formulaire pour une résolution de 1024 x 768 par exemple.
Il suffit pour cela d'agrandir ton formulaire, de sélectionner tous les objets
et de les déplacer "au centre" du formulaire.
Ensuite, avec le code, cela s'adaptera suffisement...

C'est ce que j'utilise pour la saisie d'un PSW ;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/






Avatar
3stone
Salut,

"Cerveza"
| J'ai trouvé la référence
| «http://access.jessy.free.fr/htm/DownLoad/AutoResize.htm» que tu dois
| certainement connaître. Elle fait ce que j'attendais (après quelques légères
| adaptations).
|
| Je ne peux pas faire un formulaire commun à tous mes utilisateurs: certains
| travaillent en 800x600, d'autres en 1024 par 768 et d'autres plus grands
| encore. Certains veulent travailler en formulaire, d'autres en feuilles de
| données. Certains ne travaillent qu'en mode Maximisé et d'autre en format
| réduit. J'ai aussi des vieux qui veulent que tous les contrôles
| s'agrandissent en format maximisé. Tu vois le topo! L'approche de Jessy me
| permet de satisfaire tout le monde.


Là, je ne vois pas bien le rapport avec ta question du départ !
Tu parle d'un formulaire de 10 x 8 cm... Pourquoi vouloir adapter cette
taille selon la résolution ?? Pour faire des briques LEGO(tm) ?

Perso, je suis en 1280 x 1024 et je ne voudrais pas que l'on "adapte"
un formulaire réalisé pour une résolution 800 x 600 !!!



| Merci encore. Tiens une question de dernière minute, si tu as la réponse...
| Comment puis-je empêcher un utilisateur de quitter une fenêtre sans la
| fermer quand il est en Feuille de données? La fenêtre modale ne s'applique
| que pour les présentations en mode formulaire. Comment limiter l'utilisateur
| quand il est en mode de feuille de données?

dans ton OpenForm... utilise le paramètre "acDialog"


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/