OVH Cloud OVH Cloud

Variables globales ?

44 réponses
Avatar
Michael Monerau
Bonjour,

J'ai une question concernant le design général pour un nouveau et long
projet.

Comment faites-vous pour stocker les options générales d'un programme ? Par
exemple, les options données par la ligne de commande, ou le Handle de la
fenêtre principale (sous Windows), ou l'objet sélectionné en ce moment (dans
le cas d'un programme qui présenterait une telle fonctionnalité), etc...

Vous m'avez compris :) J'aimerais savoir s'il y a un pattern destiné à celà
: garder les valeurs accessibles par tout le code... Est-ce que les
variables globales sont utilisables dans ce cas-là ?

J'ai utilisé un singleton "GeneralManager" dans mon projet précédent, avec
une paire de Get/Set pour chaque variable, mais je trouve cela vraiment très
lours à l'utilisation (GeneralManager::Instance()->GetBlah() à chaque
fois...).

Merci de vos lumières :)

--
<=-Michaël"Cortex" Monerau.-=>

10 réponses

1 2 3 4 5
Avatar
Fabien LE LEZ
On 28 Jul 2003 01:51:25 -0700, wrote:

En ce qui concerne les applications avec des fenêtres, la régle
générale, je pense, c'est d'arrêter l'application quand la dernière
fenêtre se ferme.

Il ne doit pas y a une fenêtre « principale »,
privilégée par rapport aux autres.


En général, si (sous Windows du moins)... mais rien ne l'oblige à être
visible.

Sinon, on retombe dans des interfaces
pénibles comme Lotus Notes ou Word.


Quel est le point qui te gêne dans ces interfaces ?


--
Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/
et http://www.aminautes.org/forums/serveurs/tablefr.html
Archives : http://groups.google.com/advanced_group_search
http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html

Avatar
kanze
Fabien LE LEZ wrote in message
news:...
On 28 Jul 2003 01:51:25 -0700, wrote:

En ce qui concerne les applications avec des fenêtres, la régle
générale, je pense, c'est d'arrêter l'application quand la dernière
fenêtre se ferme.

Il ne doit pas y a une fenêtre « principale », privilégée par rapport
aux autres.


En général, si (sous Windows du moins)... mais rien ne l'oblige à être
visible.


Alors, à quoi est-ce qu'il sert ?

Sinon, on retombe dans des interfaces pénibles comme Lotus Notes ou
Word.


Quel est le point qui te gêne dans ces interfaces ?


Dans Lotus Notes, à peu près tout:-). Mais ce dont je parlais, c'est le
fait que tu as une fenêtre énorme, avec beaucoup de petites
sous-fenêtres dedans, et non simplement beaucoup de fenêtres séparées.

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16


Avatar
Jean-Marc Bourguet
"Christophe Lephay" writes:

a écrit dans le message de
news:
Fabien LE LEZ wrote in message
news:...
On 28 Jul 2003 01:51:25 -0700, wrote:

En ce qui concerne les applications avec des fenêtres, la régle
générale, je pense, c'est d'arrêter l'application quand la dernière
fenêtre se ferme.

Il ne doit pas y a une fenêtre « principale », privilégée par rapport
aux autres.


En général, si (sous Windows du moins)... mais rien ne l'oblige à être
visible.


Alors, à quoi est-ce qu'il sert ?


C'est Windows qui est foutu comme ça : quand tu lances ton application, elle
doit enregistrer sa classe de fenêtre (avec, notemment, la fonction chargée
de réceptionner puis dispatcher les messages).


Qu'est-ce qui t'empeche d'avoir plusieurs fenetres de la meme classe?

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org




Avatar
Fabien LE LEZ
On 30 Jul 2003 03:46:19 -0700, wrote:

En général, si (sous Windows du moins)... mais rien ne l'oblige à être
visible.


Alors, à quoi est-ce qu'il sert ?


Entre autres, à recevoir les messages généraux envoyés à l'application
(du style, "Windows est en cours de fermeture, faudrait p'têt' penser
à terminer l'application avant que je tue le processus").
Sous Windows, le terme "fenêtre" désigne une entité capable de
recevoir des messages, et qui _peut_ avoir une représentation
graphique.

Mais ce dont je parlais, c'est le
fait que tu as une fenêtre énorme, avec beaucoup de petites
sous-fenêtres dedans, et non simplement beaucoup de fenêtres séparées.


Si tu veux avoir une fenêtre par document sous un logiciel style Word
par exemple, il suffit de lancer plusieurs instances.
Si par contre tu parles d'une interface avec une fenêtre pour la barre
d'icônes, une fenêtre par barre d'outils, et une fenêtre par document,
avec le tout qui se mélange avec les fenêtres d'autres applications,
non merci, pas pour moi. Borland C++ Builder a une interface de ce
style, et c'est tellement inutilisable (à moins de n'avoir rien sur le
bureau et aucune autre application lancée) que c'est la principale
raison qui m'a fait remiser la version qu'Inprise m'avait offert[*].

[*] L'autre raison était que ce machin générait du code
automatiquement sans que lui demande quoi que ce soit, ce qui est
aussi agréable que conduire une voiture qui déciderait d'elle-même de
dépasser, sur une route de montagne.


--
Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/
et http://www.aminautes.org/forums/serveurs/tablefr.html
Archives : http://groups.google.com/advanced_group_search
http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html


Avatar
Gabriel Dos Reis
Fabien LE LEZ writes:

| On 30 Jul 2003 17:20:14 +0200, Jean-Marc Bourguet
| wrote:
|
| >Qu'est-ce qui t'empeche d'avoir plusieurs fenetres de la meme classe?
|
| Je ne sais pas si ça serait valide, mais en tout cas ça aurait des
| effets intéressants, du style permettre à Windows de fermer
| l'application à 50 % ;-)

celle qui vient de faire une opération inopinée ? :-)

-- Gaby
Avatar
Christophe Lephay
"Jean-Marc Bourguet" a écrit dans le message de
news:
"Christophe Lephay" writes:
C'est Windows qui est foutu comme ça : quand tu lances ton application,
elle


doit enregistrer sa classe de fenêtre (avec, notemment, la fonction
chargée


de réceptionner puis dispatcher les messages).


Qu'est-ce qui t'empeche d'avoir plusieurs fenetres de la meme classe?


Il me semble bien (j'y mettrais ma main gauche à couper) qu'à chaque
application est associée une et une seule fenêtre principale. Notemment, on
ne peut pas avoir plusieurs fenêtres avec barre des menus. De même, si
plusieurs fenêtres peuvent envoyer des messages au système, une seule peut
recevoir ceux que le système envoie à l'application.

Chris


Avatar
Christophe Lephay
"Fabien LE LEZ" a écrit dans le message de
news:
Si par contre tu parles d'une interface avec une fenêtre pour la barre
d'icônes, une fenêtre par barre d'outils, et une fenêtre par document,
avec le tout qui se mélange avec les fenêtres d'autres applications,
non merci, pas pour moi. Borland C++ Builder a une interface de ce
style, et c'est tellement inutilisable (à moins de n'avoir rien sur le
bureau et aucune autre application lancée) que c'est la principale
raison qui m'a fait remiser la version qu'Inprise m'avait offert[*].


C'est pourtant bien pratique, surtout si tu as plusieurs écrans sur ton
système.

Chris

Avatar
Fabien LE LEZ
On Wed, 30 Jul 2003 18:07:35 +0200, "Christophe Lephay"
wrote:

C'est pourtant bien pratique,


A condition de ne pas avoir d'autres applications lancées, et d'avoir
un bureau totalement vide. Sinon le tout se mélange allègrement. C'est
un peu comme si dans un éditeur de texte, le fond était transparent,
et que tu pouvais voir les autres applications au milieu du texte.

surtout si tu as plusieurs écrans sur ton système.


Arf... T'en connais beaucoup, des systèmes qui ont plusieurs écrans ?
;-)


--
Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/
et http://www.aminautes.org/forums/serveurs/tablefr.html
Archives : http://groups.google.com/advanced_group_search
http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html

Avatar
Fabien LE LEZ
On 31 Jul 2003 08:59:09 +0200, Jean-Marc Bourguet
wrote:

Windows n'a toujours pas de bureaux multiples?


Pas à ma connaissance.
D'ailleurs je ne vois toujours pas l'intérêt de la solution "plein de
petites fenêtres dans un bureau à part" par rapport à "plein de
petites fenêtres dans une grande fenêtre".


--
Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/
et http://www.aminautes.org/forums/serveurs/tablefr.html
Archives : http://groups.google.com/advanced_group_search
http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html

Avatar
David Brabant
"Jean-Marc Bourguet" wrote

Qu'est-ce qui t'empeche d'avoir plusieurs fenetres de la meme classe?


Rien.

--
David

1 2 3 4 5