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 |
|
|
| les barres de défilement | |
| | Auteur | Message |
---|
pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: les barres de défilement Dim 20 Déc 2020 - 11:00 | |
| bonjour
pourquoi les barres de défilement ne s'allume pas dès qu'un objet dépasse les limites de la fenêtre est-ce n défaut de panoramic ou bien réglage a faire dans Windows? j'ai Windows 10 édition familiale | |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| | | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: les barres de défilement Dim 20 Déc 2020 - 11:38 | |
| Bonjour Pascal, bonjour à tous ! - Pascal10000 a écrit:
- ourquoi les barres de défilement ne s'allume pas
dès qu'un objet dépasse les limites de la fenêtre De quel objet parles-tu ? Autrement, pour certains objets, tu as les mots-clés : BAR_BOTH BAR_VERTICAL BAR_HORIZONTAL BAR_NONE ...mais je ne sais pas si ceci répond à ta question. | |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: les barres de défilement Dim 20 Déc 2020 - 12:31 | |
| bjr marc
par exemple lorsque tu mets un more de 1000 pxl de grandeur et que ta fenêtre fait 800 de grandeur une barre de défilement devrais se mettre automatiquement mais là ce n’est pas cas | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: les barres de défilement Dim 20 Déc 2020 - 13:04 | |
| @Pascal Tu ne me dis pas de quelle sorte de fenêtre il s’agit (FORM, PANEL, MEMO, MEMO_RICH… ).
Quoi qu’il en soit, si l’objet mystère ne possède pas les "ascenseurs" attendus, je pense que dans Panoramic, il y a tout ce qu’il faut pour en créer : - SCROLL_BAR - HORIZONTAL - VERTICAL + un peu de programmation pour asservir le déplacement du contenu visible de ladite fenêtre aux scroll_bars.
Encore une fois, pour savoir si c'est réalisable, il faudrait savoir sur quel type de fenêtre tu souhaites réaliser un scrolling.
Bonne continuation !
| |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: les barres de défilement Dim 20 Déc 2020 - 13:24 | |
| | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: les barres de défilement Dim 20 Déc 2020 - 14:13 | |
| J'avais déjà signalé cette particularité nouvelle. Par exemple, tu mets un picture sur un form et le bas du picture descend plus bas que la limite inférieure du form. Du temps des Versions 9.26 et antérieures il se créait automatiquement un ascenseur vertical au niveau du form. Dans les versions modernes, cela ne se produit plus et je n'ai jamais trouvé comment compenser cela, même avec tous les bar_vertical et autres barres de défilement. | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: les barres de défilement Dim 20 Déc 2020 - 14:29 | |
| Voici un exemple pour pouvoir faire défiler verticalement des objets dans un form. Le principe : Un panel tapisse le fond du form 0. C'est ce panel qui va accueillir tous les objets (button, alpha, picture et autres). Dans cet exemple, j'ai programmé un panel de 2000 pixels de haut. J'ai ajouté un objet-témoin ALPHA à la position TOP de 1800. Il faut utiliser l'ascenseur pour pouvoir le visualiser. - Code:
-
label defilementVertical,redimensionnerFenetre
creerFenetreScrollableVerticalement()
alpha 3 top 3,1800 left 3,200 caption 3,"Hello !"
end
sub creerFenetreScrollableVerticalement() width 0,600 height 0,500 on_resize 0,redimensionnerFenetre
scroll_bar 1 vertical 1 left 1,width_client(0) - width(1) height 1,height_client(0) on_change 1,defilementVertical
panel 2 width 2,width_client(0) - width(1) height 2,2000 : ' hauteur de 2000 pixels par exemple
max 1,height(2) - height_client(0) command_target_is 2 end_sub
defilementVertical: top 2,(-1) * position(1) return
redimensionnerFenetre: left 1,width_client(0) - width(1) height 1,height_client(0) width 2,width_client(0) - width(1) max 1,height(2) - height_client(0) return On peut programmer la même chose dans le sens horizontal, voire horizontal et vertical. Voici le même source avec un plus quelques objets divers et variés. - Code:
-
label defilementVertical,redimensionnerFenetre
creerFenetreScrollableVerticalement()
alpha 3 top 3,1800 left 3,200 caption 3,"Hello !"
button 4 top 4,200 left 4,500 caption 4,"bouton"
picture 5 top 5,800 left 5,20 color 5,250,0,0
scene2d 6 top 6,20 left 6,20 width 6,300 height 6,200
combo 7 top 7,300 left 7,150
spin 8 top 8,350 left 8,400
end
sub creerFenetreScrollableVerticalement() width 0,600 height 0,500 on_resize 0,redimensionnerFenetre
scroll_bar 1 vertical 1 left 1,width_client(0) - width(1) height 1,height_client(0) on_change 1,defilementVertical
panel 2 width 2,width_client(0) - width(1) height 2,2000 : ' hauteur de 2000 pixels par exemple
max 1,height(2) - height_client(0) command_target_is 2 end_sub
defilementVertical: top 2,(-1) * position(1) return
redimensionnerFenetre: left 1,width_client(0) - width(1) height 1,height_client(0) width 2,width_client(0) - width(1) max 1,height(2) - height_client(0) return | |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: les barres de défilement Dim 20 Déc 2020 - 15:57 | |
| c'est sympa marc pour ton code mais ça rallonge le source et on s’y perdrait
jjn4 a raison avant cela se produisait klaus tu pourrais ptêt faire ça dans kgf !!
| |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: les barres de défilement Dim 20 Déc 2020 - 16:36 | |
| Merci, Marc pour cette brillante construction ! C'est vrai, donc, que ça peut marcher. Mais je suis d'accord avec pascal10000, il faut admettre que c'est un peu compliqué pour quelque chose qui se faisait automatiquement avant. Je trouve que c'est plutôt Jack qui pourrait faire retrouver cet automatisme dans les prochaines versions, enfin si c'est possible... (et si la todolist n'est pas trop longue ) | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: les barres de défilement Dim 20 Déc 2020 - 18:05 | |
| - Citation :
- klaus tu pourrais ptêt faire ça dans kgf !!
Euh... c'est fait depuis longtemps ! Regarde les objets ScrollPanel pour faire exactement ce qui est proposé ici, mais aussi ScrollImage plus précidément pour les images. Urilise les programmes de démo pour voir les effets - c'est exactement ça. | |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: les barres de défilement Dim 20 Déc 2020 - 20:09 | |
| bsr désolé klaus mais scrollpanel n'est pas prévu pour faire apparaitre une barre de défilement a un form j'ai fait un test et rien ne c'est passé au form créé ou alors je m'y suis mal pris | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: les barres de défilement Dim 20 Déc 2020 - 23:34 | |
| @Pascal - Pascal10000 a écrit:
- mais ça rallonge le source et on s’y perdrait
Je ne pense pas que tu te perdras dans un tel code ! Tu as juste besoin de deux objets supplémentaires : un panel et un scroll_bar. Pour créer l’infrastructure, une petite sub de quelques lignes : - Code:
-
sub creerFenetreScrollableVerticalement() scroll_bar 1:vertical 1:left 1,width_client(0)-width(1):height 1,height_client(0) on_change 1,defilementVertical panel 2:width 2,width_client(0)-width(1):height 2,2000:max 1,height(2)-height_client(0) command_target_is 2 end_sub
et un sous-programme de trois lignes pour pouvoir déplacer l’ascenseur : - Code:
-
defilementVertical: top 2,(-1) * position(1) return
Voici en résumé, le source opérationnel complet en 12 lignes : - Code:
-
label defilementVertical creerFenetreScrollableVerticalement() end sub creerFenetreScrollableVerticalement() scroll_bar 1:vertical 1:left 1,width_client(0)-width(1):height 1,height_client(0) on_change 1,defilementVertical panel 2:width 2,width_client(0)-width(1):height 2,2000:max 1,height(2)-height_client(0) command_target_is 2 end_sub defilementVertical: top 2,(-1) * position(1) return
- Pascal10000 a écrit:
- mais ça rallonge le source et on s’y perdrait
De mémoire, Pedro a créé un source de plus de 50000 lignes ! Alors tu peux y aller sans crainte, l’espace disponible est vaste, très vaste ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: les barres de défilement Lun 21 Déc 2020 - 0:39 | |
| @pascal10000: - Citation :
- désolé klaus
mais scrollpanel n'est pas prévu pour faire apparaitre une barre de défilement a un form j'ai fait un test et rien ne c'est passé au form créé ou alors je m'y suis mal pris Lance ce programme de démo: - Code:
-
' test_ScrollPanel.bas
dim SP1%, SP2%, SP3%, SP4% dim res%
full_space 0
dll_on "KGF.dll" SP1% = dll_call1("CreateScrollPanel",handle(0)) res% = dll_call5("LocateScrollPanel",SP1%,0,100,width_client(0),150) SP2% = dll_call1("CreateScrollPanel",handle(0)) res% = dll_call5("LocateScrollPanel",SP2%,0,250,width_client(0)/2,200) SP3% = dll_call1("CreateScrollPanel",handle(0)) res% = dll_call5("LocateScrollPanel",SP3%,width_client(0)/2,250,width_client(0)/2,200) SP4% = dll_call1("CreateScrollPanel",handle(0)) res% = dll_call5("LocateScrollPanel",SP4%,0,450,width_client(0),150)
memo 11 : bar_both 11 : width 11,300 : height 11,600 : font_names_load 11 res% = dll_call4("AttachToScrollPanel",SP1%,handle(11),0,0) memo 12 : bar_both 12 : width 12,300 : height 12,600 : font_names_load 12 res% = dll_call4("AttachToScrollPanel",SP1%,handle(12),400,100)
memo 21 : bar_both 21 : width 21,300 : height 21,600 : font_names_load 21 res% = dll_call4("AttachToScrollPanel",SP2%,handle(21),0,0)
memo 31 : bar_both 31 : width 31,300 : height 31,600 : font_names_load 31 res% = dll_call4("AttachToScrollPanel",SP3%,handle(31),0,0)
memo 41 : bar_both 41 : width 41,300 : height 41,600 : font_names_load 41 res% = dll_call4("AttachToScrollPanel",SP4%,handle(41),500,100)
end
Ce programme met la form 0 en pleine page, puis crée 3 objets ScrollPanel. Dans chacun, il attache des objets Panoramic. Chacun de ces objets ScrollPanel affiche sa propre barre de défilement, et ce n'est PAS la barre de défilement de la fenêtre. Celle-la, c'est Windows qui la gère et je n'ai aucune influence dessus. Par contre, chaque Scroll¨Panel a sa propre barre de défilement. En particulier, regarde celle du premier panel en haut: si tu la bouges, tu vois apparaître des objets non visibles initialement. Et c'est exactement le problème quui était posé. En fait chaque ScrollPanel agit commeune "fenêtre" indépendante. Tu as également la fonction suivante: - Code:
-
res% = dll_call2("SetViewOfScrollPanel",handle(form%),act%) Je reconnais qu'il y a une erreur dans la doc que je vais corriger immédiatement. Le vrai format devrait être: - Code:
-
[b]res% = dll_call2("ShowFormScrollBars",handle(form%),act%)[/b] Et cette fonction fait bien ce que son nom indique: tout à fait indépendemment d'éventuels objets ScrollPanel elle agit directement sur les ascenseurs de la FORM pour les faire apparaître ou disparaître. Ainsi, tu as deux solutions indépendantes pour cet aspect de la programmation, via KGF.dll. | |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: les barres de défilement Lun 21 Déc 2020 - 6:07 | |
| bonjour Klaus décidément tu ne comprend pas ma demande excuse moi d’être brutale !! j'ai repris exactement ta démo de dessu sauf que j'ai retiré full_space 0 et c'est de cela qui est ma demande et pourquoi faire un full_space??????? capture 1 fenêtre normal capture 2 fenêtre réduite a sa hauteur a la 2eme image il devrai apparaitre la barre vertical si tu reduit le form de sa hauteur et là ce n'est pas le cas merci quand même bonne journée | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: les barres de défilement Lun 21 Déc 2020 - 8:54 | |
| C'est bien ce que j'essaie de dire. Avec KGF.dll, tu as 2 solutions: 1. tu définis in ScrollPanel sur toute la surface de ta fenêtre, quelque soit sa taille (largeur=width_client(0) et hauteur=height_client(0)). Tu y places des éléments qui, cette fois, peuvent être largement en-dehors de la partie visible. Et tu as une scrollbar horizontale et une verticale pour déplacer tout cela à ta guise. 2. tu utilises uniquement - Code:
-
res% = dll_call2("ShowFormScrollBars",handle(0%),0%) après avoir installé tous tes objets visuels, et tu obtiens les barres de féfilement de Windows. | |
| | | Contenu sponsorisé
| Sujet: Re: les barres de défilement | |
| |
| | | | les barres de défilement | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |