Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 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 | 29 | 30 | | Calendrier |
|
|
| Bug scene3d | |
| | Auteur | Message |
---|
eula
Nombre de messages : 2 Date d'inscription : 21/11/2014
| Sujet: Bug scene3d Mer 27 Mar 2019 - 13:38 | |
| Bonjour, Je suis sous Windows 7 avec une résolution écran de 1920 x 1200, et voici 2 programmes qui révèle un bug sur les dimension d'un scene3d. dans le 1er programme au 3ème message je devrais avoir "largeur=1804 x hauteur=1122" au lieu de "largeur=1820 x hauteur=200" - Code:
-
full_space 0 message "largeur="+str$(width(0))+" x hauteur="+str$(height(0))
scene3d 1:full_space 1 message "largeur="+str$(width(1))+" x hauteur="+str$(height(1)) width 1,width(0)-100:color 1,0,100,0 message "largeur="+str$(width(1))+" x hauteur="+str$(height(1))
dans le second programme au 3ème message je devrais avoir "largeur=1904 x hauteur=1022" au lieu de "largeur=200 x hauteur=1060" - Code:
-
full_space 0 message "largeur="+str$(width(0))+" x hauteur="+str$(height(0))
scene3d 1:full_space 1 message "largeur="+str$(width(1))+" x hauteur="+str$(height(1)) height 1,height(0)-100:color 1,0,100,0 message "largeur="+str$(width(1))+" x hauteur="+str$(height(1))
Avez-vous lmême problèmes que moi en éxécutant ces codes? Merci. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Bug scene3d Mer 27 Mar 2019 - 13:57 | |
| Tu utilises width(0) et hight(0) pour déterminer les dimensions du scene3D. Même pour un autre objet (picture, memo, etc) cela ne marchera pas comme tu l'imagines. Ces deux fonctions retournent les dimensions extérieures, cadre compris. Et donc, le dimensionnement de ton objet Scene3D ne peut pas être correct.
Utilise width_client() et height_client() à la place. Ces deux fonctions retournent les dimensions intérieures (zone client) de l'objet passé en paramètre. Ca se passera déjà mieux... | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Bug scene3d Mer 27 Mar 2019 - 17:00 | |
| Bonjour à tous ! - Eula a écrit:
- Avez-vous lmême problèmes que moi en éxécutant ces codes?
Oui, c'est identique aussi bien sur Windows 7 que sur Windows 10. Pour éviter ce genre de désagrément, je préconise de remplacer FULL_SPACE 1 par : WIDTH 1,WIDTH_CLIENT(0) HEIGHT 1,HEIGHT_CLIENT(0)
Ce qui donne : - Code:
-
full_space 0 message "largeur="+str$(width(0))+" x hauteur="+str$(height(0))
scene3d 1 WIDTH 1,WIDTH_CLIENT(0) HEIGHT 1,HEIGHT_CLIENT(0) full_space 1 message "largeur="+str$(width(1))+" x hauteur="+str$(height(1)) height 1,height(0)-100:color 1,0,100,0 message "largeur="+str$(width(1))+" x hauteur="+str$(height(1)) Testé avec succès chez moi. Bonne programmation ! EDIT : remarque identique sur un SCENE2D, si ses valeurs HEIGHT et WIDTH ne sont pas définies, lorsque l'on quitte le format FULL_SPACE en modifiant un des deux paramètres, l'autre va prendre sa valeur par défaut (HEIGHT : 200 et WIDTH : 200). Pour moi, ce n'est pas un bug. | |
| | | eula
Nombre de messages : 2 Date d'inscription : 21/11/2014
| Sujet: Re: Bug scene3d Mer 27 Mar 2019 - 17:38 | |
| Bonsoir, Alors la commande full_space 1 ne sert à rien dans ce cas là. Moi je suis pa daccord. J'ai remplacé le scene3d parun scene2d, pâr un panel et même par un mémo, et jai le même problème. - Code:
-
full_space 0 message "largeur="+str$(width(0))+" x hauteur="+str$(height(0))
memo 1 full_space 1 message "largeur="+str$(width(1))+" x hauteur="+str$(height(1)) height 1,HEIGHT_CLIENT(1)-100:color 1,0,100,0 message "largeur="+str$(width(1))+" x hauteur="+str$(height(1)) Pour moi la commande full_space 1 est en cause! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Bug scene3d Mer 27 Mar 2019 - 17:49 | |
| Non. Tu n'a pas compris la fonction de full_space. Cette commande donne la totalité de la surface disponible à l'objet passé en paramètre. Et la surface disponible est uniquement la zone client de l'objet parent, donc le rectangle (0,0) à (width_client,height_client) par rapport à l'objet parent. Si tu veux vraiment utiliser l'écran total, sans limitations, alors il faut faire: - Code:
-
border_none 0 : ' plus de bordure sur la form 0 full_space 0 : ' la form 0 prend réelement tout l'écran scene_3d 1 full_space 1 : le scene_3d aura exactement la taille de la form 0 et donc de l'écran
Avec border_none, la largeur des bordures de la form 0 devient zéro, et donc width(0)=width_client(0) et ainsi de suite. Attention: prévoir un moyen de sortir du programme, car il n'y aura plus de croix rouge ! | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Bug scene3d Mer 27 Mar 2019 - 18:31 | |
| @Klaus
Juste un petit lapsus : ce n'est pas BORDER_NONE mais BORDER_HIDE. | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Bug scene3d Mer 27 Mar 2019 - 18:54 | |
| - Marc a écrit:
- ...si ses valeurs HEIGHT et WIDTH ne sont pas définies, lorsque l'on quitte le format FULL_SPACE en modifiant un des deux paramètres, l'autre va prendre sa valeur par défaut (HEIGHT : 200 et WIDTH : 200).
Pour moi, ce n'est pas un bug. Ce n'est pas très logique mais c'est exactement ça qui se passe @eula Mettre un objet en full_space pour le redimensionner ensuite, autant le dimensionner directement, non? Si tu as vraiment besoin de full_space, utilise une sub pour le remplacer afin qu'il produise l'effet attendu. Avec le code de ton dernier post: - Code:
-
full_space 0 message "largeur="+str$(width(0))+" x hauteur="+str$(height(0))
memo 1 ' full_space 1 SPACE_FULL(1) message "largeur="+str$(width(1))+" x hauteur="+str$(height(1)) height 1,HEIGHT_CLIENT(1)-100:color 1,0,100,0 message "largeur="+str$(width(1))+" x hauteur="+str$(height(1)) END sub SPACE_FULL(my_obj%) if parent(my_obj%)<>-1 ' l'objet a un parent (form 0 par défaut si non défini) width my_obj%,width_client(parent(my_obj%)) : height my_obj%,height_client(parent(my_obj%)) else if object_exists(my_obj%)=1 ' l'objet existe et n'a pas de parent, ça ne peut être qu'un form width my_obj%,screen_x : height my_obj%,screen_y end_if end_if end_sub | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Bug scene3d Mer 27 Mar 2019 - 19:33 | |
| - Citation :
- Mettre un objet en full_space pour le redimensionner ensuite, autant le dimensionner directement, non?
Ca peut avoir un réel intérêt. Je fais ça souvent si je veux avoir un objet recouvrant tout sauf les 150 pixels du haut. Je le déclare full_space, enlève 150 de sa hauteur et le mets en TOP 150. C'est plus simple que de faire des calculs - méthode de fainéant, je sais... | |
| | | Contenu sponsorisé
| Sujet: Re: Bug scene3d | |
| |
| | | | Bug scene3d | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |