Gambas France BETA


Pas de compte ? Incription

Police la meme dans toutes les Form...

Ce sujet est résolu.

1
AuteurMessages
spheris#1 Posté le 18/12/2021 à 10:46:20
Bonjour,
Comment avoir la même police dans toutes les Forms de mon application ainsi que tous les widgets qui compose celui-ci?
Merci pour votre réponse.
;)
jeanyvon#2 Posté le 18/12/2021 à 12:45:01
Gambas? Ma! Et gustoHello!
une fonction dans un module
pour toutes les form"s"
1
2
3
4
SUB form_open()
form.font =module.fonctionnom
form.fontsize =module.fonctiontaille
END

il doit y avoir bien mieux et en plus je ne sait pas si je répond à ta question
Vieillir? On peut retarder mais pas y échapper!
vuott#3 Posté le 18/12/2021 à 20:05:44
Ne cedere ineluctabili possimusPour les "widget" qui appartiennent au "Form", je proposerais un exemple simple:
1
2
3
4
5
6
7
8
9
10
PUBLIC SUB Form_Open()

DIM ob AS OBJECT

FOR EACH ob IN ME.Controls
ob.Font = Font["symbol,20"]
ob.Text = "Abcde"
NEXT

END
« Vita non suavis esse potest, nec Mors amara. »
spheris#4 Posté le 20/12/2021 à 10:13:07
JeanYvon, vuott,
Merci à tous les deux vos solutions fonctionnent.
Et maintenant, comment appliquer la même police à tous les form sur tous les widgets dans toute l'application gambas?
Patrick#5 Posté le 20/12/2021 à 15:10:03
Bonjour,
Dans une class que tu vas nommer Form :
1
2
3
4
5
6
7
8
CREATE STATIC
EXPORT

PUBLIC SUB _new()

ME.Font = Font["Purisa,11"]

END


Et le tour est joué, toutes les class Form et héritées de Form auront les mêmes spécifications.
spheris#6 Posté le 22/12/2021 à 12:50:24
Merci Patrick,
ça marche super.
par contre, une autre question.
Comment imposer à toutes les form de mon application à la volée le résultat d'une fontchooser?
Patrick#7 Posté le 22/12/2021 à 17:38:46
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
' Gambas class file

CREATE STATIC
EXPORT

PUBLIC SUB _new()
DIM obs AS Observer

obs = NEW Observer(ME) AS "Fto"
ME.Font = Font["Purisa,11"]

END

PUBLIC SUB fto_Font()

DIM win AS Window
DIM obj AS OBJECT

FOR EACH win IN Windows
Object.Lock(win)
win.font = Font["Serif"]
FOR EACH obj IN win.Children
TRY obj.font = Font["Serif"]
NEXT
Object.Unlock(win)
NEXT

END


Voila ça doit fonctionner, il suffira de changer Font["Serif"] par une variable publique puis dans la class qui change la Font :
1
2
manouvellefont = fontchooser.value
ME.Font = Font[manouvellefont]

Ou même rendre la fontchooser publique et récupérer sa valeur.
L'événement _Font est déclenché chaque fois qu'on change la fonte dans une fenêtre, pour ne pas avoir une boucle sans fin on les verrouilles pour qu'aucun événement ne soit levé.
jeanyvon#8 Posté le 23/12/2021 à 12:40:54
Gambas? Ma! Et gustoHello!
c'est ce que l'on appel connaître la programmation en générale et en gambas particulièrement!!!
merci
Vieillir? On peut retarder mais pas y échapper!
spheris#9 Posté le 24/12/2021 à 09:37:07
Rien a ajouter, cela marche super.
Merci patrick.
J'ai une autre question hardu que je mets dans un nouveau post.
1