Page 1 sur 2

Modifer le type de fenetre

Publié : sam. 01/mai/2004 9:19
par julien
Encore une question (tordu) de ma part !
Est ce que qq pourait me mettre sur la voie :

Dans une de mes applications, je laisse le choix à l'utilisateur du type de fenetre qu'il veut, c'est à dire qu'il à le choix entre une fenetre avec l'option maximize, d'agrandissment, redimensionner la fenetre avec ses propres valeurs. Le tout stocker dans un fichier texte.
Comment faire pour appliquer ces options sur une fenetre déja compilé ?
(faut'il ajouter la valeur des constantes ? si oui comment les appliquer à la fentre après compilation)
:)

Publié : sam. 01/mai/2004 9:36
par Anonyme2
ResizeWindow(Largeur, Hauteur) pour redimensionner avec les valeurs perso en utilisant Usewindow() si nécessaire avant

et

ShowWindow_(WindowID(), #SW_MAXIMIZE) pour maximiser

Publié : sam. 01/mai/2004 9:46
par julien
Merci Denis, mais en fait je veux l'apparition ou non des boutons maximize, minimize... la possibilité à l'utilisateur de redimensionner la fenetre....

Publié : sam. 01/mai/2004 9:57
par cederavic
c'est simple, tu fait 2 constante qui contient les flags des deux choix de l'utilisateur et tu ouvre la fenetre avec l'un ou l'autre, par exemple (simplifier)

Code : Tout sélectionner

#flag1 = #PB_Window_SystemMenu | #PB_Window_SizeGadged | #PB_Window_Maxi...... (blablabla)
#flag2 = #PB_Window_SystemMenu

if choix = 1
  openwindow(0, 0, 0, 100, 100, #flag1, "")
else
  openwindow(0, 0, 0, 100, 100, #flag2, "")
endif

Publié : sam. 01/mai/2004 10:01
par Chris
je laisse le choix à l'utilisateur du type de fenetre qu'il veut, c'est à dire qu'il à le choix entre une fenetre avec l'option maximize, d'agrandissment, redimensionner la fenetre avec ses propres valeurs. Le tout stocker dans un fichier texte.
Je ne sais pas si j'ai bien compris ce que tu veux faire

Si tu lis ton fichier texte avant d'ouvrir ta fenêtre, tu peux modifier la valeur des paramètres comme tu veux. Enfin, je pense :?

Tu crées des constantes avec les paramètres contenus dans le fichier, et tu les appliques à l'ouverture de la fenêtre. Par contre, je ne sais pas si c'est modifiable une fois la fenêtre ouverte
J'ai pas essayé.

Chris :)

Publié : sam. 01/mai/2004 10:24
par Le Soldat Inconnu
voir ici :

http://purebasic.hmt-forum.com/viewtopic.php?t=618

tu y trouveras ta réponse ;)

Publié : sam. 01/mai/2004 10:31
par julien
@cederavic

Le problème c'est qu'avec + de 4 options ça en fait des choix de fenetre,

Je pensai faire un truc de se genre :

Code : Tout sélectionner

#flag1 = #PB_Window_SystemMenu 
#flag2 =#PB_Window_Maxi
#flag3 = #PB_Window_Mini
openwindow(0, 0, 0, 100, 100, #flag1+#flag2+#flag3, "") 
Mais le problème c que ça ne marche pas, je me retrouve avec des fenetre plein écran... ou des truc bizarre

Publié : sam. 01/mai/2004 10:35
par Chris
#flag1+#flag2+#flag3
Tu fais ça, quand tu crées une fenêtre, normalement ?

Code : Tout sélectionner

#flag1|#flag2|#flag3
Et il faut tester avant pour savoir combien il y a de flags.

Tu crées le style avec les flags lus dans le fichier, et tu ouvres ta fenêtre ensuite.

Chris :)

Publié : sam. 01/mai/2004 12:26
par julien
le problème, c'est que j'ai le message, une constante ne peut pas être composé d'une variable ou d'une fonction

Publié : sam. 01/mai/2004 14:12
par Flype
on peut aussi dynamiquement changer le type d'une fenetre, attendez je vous montre çà avec un petit exemple

Publié : sam. 01/mai/2004 20:30
par filperj
le problème, c'est que j'ai le message, une constante ne peut pas être composé d'une variable ou d'une fonction
Ben... Pourquoi tu n'utilises pas une variable ? :roll:

Publié : sam. 01/mai/2004 20:32
par Flype
là, il a pas tort :roll:

Publié : sam. 01/mai/2004 21:39
par julien
ben... comment utiliser une variable avec les constantes ?

Je pense que c'est ce genre de code que vous voulez me dire, et bien y'a une erreur du compilateur,

Code : Tout sélectionner

flag1 = 13107200 ; les constantes
flag2 =1
flag3 = 500
#fenetre=flag1+flag2+flag3
OpenWindow(0, 0, 0, 100, 100, #fenetre, "") 

Publié : sam. 01/mai/2004 21:57
par Chris
Comme ça, par exemple

Code : Tout sélectionner

flag1 = 13107200 ; les constantes
flag2 = 1
flag3 = 500
fenetre= flag1|flag2|flag3

OpenWindow(0, 0, 0, 100, 100, fenetre, "")

Repeat
Until WindowEvent()=#PB_Event_CloseWindow
Chris :)

Publié : sam. 01/mai/2004 22:15
par julien
Un Très grand Merci j'vais voir ça :D