OVH Cloud OVH Cloud

Changer des propriétés de tous les contrôles d'une application

3 réponses
Avatar
Gilles TOURREAU
Bonjour tout le monde !

Voilà, je souhaite appliquer une sorte de "thème" à mon application.
Pour cela je dois changer différentes propriétés (ForeColor, Font,
...etc) de différents contrôles...

Mais comment et surtout à quel moment modifier ces propriétés ?

Je pensais à la création d'un Form, gérer l'événement ControlAdded.
Ainsi pour chaque contrôles ajouté j'appelle une fonction
AppliqueThème() qui applique mon thème. Et cela de manière récursive
pour les contrôles enfants...

Une autre solution étais aussi de dériver une classe pour chaque
contrôle et d'appliquer le thème dans le constructeur...

Quel est selon vous la meilleur solution ?

Cordialement

--
Gilles TOURREAU
Responsable informatique
gilles.tourreau@pos.fr

Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr

3 réponses

Avatar
Paul Bacelar
Pourquoi ne pas utiliser l'architecture de thèmes de Windows et faire de
votre application, une application Theme-aware?
--
Paul Bacelar
MVP VC++


"Gilles TOURREAU" wrote in message
news:
Bonjour tout le monde !

Voilà, je souhaite appliquer une sorte de "thème" à mon application. Pour
cela je dois changer différentes propriétés (ForeColor, Font, ...etc) de
différents contrôles...

Mais comment et surtout à quel moment modifier ces propriétés ?

Je pensais à la création d'un Form, gérer l'événement ControlAdded.
Ainsi pour chaque contrôles ajouté j'appelle une fonction AppliqueThème()
qui applique mon thème. Et cela de manière récursive pour les contrôles
enfants...

Une autre solution étais aussi de dériver une classe pour chaque contrôle
et d'appliquer le thème dans le constructeur...

Quel est selon vous la meilleur solution ?

Cordialement

--
Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr




Avatar
Gilles TOURREAU
Paul Bacelar vient de nous annoncer :
Pourquoi ne pas utiliser l'architecture de thèmes de Windows et faire de
votre application, une application Theme-aware?
--
Paul Bacelar
MVP VC++


"Gilles TOURREAU" wrote in message
news:
Bonjour tout le monde !

Voilà, je souhaite appliquer une sorte de "thème" à mon application. Pour
cela je dois changer différentes propriétés (ForeColor, Font, ...etc) de
différents contrôles...

Mais comment et surtout à quel moment modifier ces propriétés ?

Je pensais à la création d'un Form, gérer l'événement ControlAdded.
Ainsi pour chaque contrôles ajouté j'appelle une fonction AppliqueThème()
qui applique mon thème. Et cela de manière récursive pour les contrôles
enfants...

Une autre solution étais aussi de dériver une classe pour chaque contrôle
et d'appliquer le thème dans le constructeur...

Quel est selon vous la meilleur solution ?

Cordialement

-- Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr







Mon application doit tourner sur des versions antérieurs à Windows XP
(2000, ME et peut-être 98), les styles visuels, je cherche donc un
moyen de changer des propriétés de tous mes controles de mon
application en fonction des préférences de l'utilisateur...

Cordialement

--
Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Paul Bacelar
"Gilles TOURREAU" wrote in message
news:
Paul Bacelar vient de nous annoncer :
Pourquoi ne pas utiliser l'architecture de thèmes de Windows et faire de
votre application, une application Theme-aware?
--
Paul Bacelar
MVP VC++


"Gilles TOURREAU" wrote in message
news:
Bonjour tout le monde !

Voilà, je souhaite appliquer une sorte de "thème" à mon application.
Pour cela je dois changer différentes propriétés (ForeColor, Font,
...etc) de différents contrôles...

Mais comment et surtout à quel moment modifier ces propriétés ?

Je pensais à la création d'un Form, gérer l'événement ControlAdded.
Ainsi pour chaque contrôles ajouté j'appelle une fonction
AppliqueThème() qui applique mon thème. Et cela de manière récursive
pour les contrôles enfants...

Une autre solution étais aussi de dériver une classe pour chaque
contrôle et d'appliquer le thème dans le constructeur...

Quel est selon vous la meilleur solution ?

Cordialement

-- Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr







Mon application doit tourner sur des versions antérieurs à Windows XP
(2000, ME et peut-être 98), les styles visuels, je cherche donc un moyen
de changer des propriétés de tous mes controles de mon application en
fonction des préférences de l'utilisateur...

Cordialement

--
Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr





Je pense que c'est se donner beaucoup de mal pour pas grand-chose, mais bon.



Si j'avais à l'implémenter, je dériverais les contrôles pour qu'ils
utilisent un objet singleton comme dépositaire des valeurs des ressources.

Avec cette approche, vous n'aurez qu'à changer la valeur de la propriété du
singleton et invalider les contrôles (l'invalidation de la Form suffira)
pour que tous utilisent les mêmes valeurs lors de leur affichage.

--
Paul Bacelar
MVP VC++