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 |
|
|
| Version d'essai des objets ScrollImage et ScrollPanel | |
| | Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Version d'essai des objets ScrollImage et ScrollPanel Ven 2 Mar 2018 - 21:51 | |
| J'ouvre un nouveau post ici pour parler exclusivement de ces deux objets que je suis en train de mettre au point. J'ai déjà publié certaines versions dans d'autres posts, en polluant en réalité le sujet dont ils traitaient, et je m'en excuse. Donc, voici la présentation de ces nouvelles possiblités, de façon indépendante. Dans les deux cas, il s'agit d'objets créés dans KGF.dll. Pour tester, il faut télécharger KGF.dll de mon WebDav, dossier DLLs.L'objet ScrollImage est un cadre d'affichage pour images dépassant les limites d'un objet PICTURE, avec des ascenseurs automatiques permettant de scroller l'image. On peut aussi la "tirer" avec la souris. Et maintenant, on peut aussi la zoomer, avec adaptation automatique des ascenseurs de défilement.Voici un programme de démo. Cliquer sur "Créer" ppur créer l'objet, puis "Charger" pour charger une grande image (photo, ...). - Code:
-
' test_TScrollImage.bas
label creer, supprimer, charger, change, reduire, augmenter
dim res%, SI%, img$, no%, no_W%, no_H%, zoom% zoom% = 100
no% = no% + 1 : open_dialog no% : filter no%,"Images (BMP,JPG,GIF,PNG)|*.bmp;*.jpg;*.gif;*.png"
no% = no% + 1 : button no% : caption no%,"Créer" : on_click no%,creer no% = no% + 1 : button no% : left no%,width(no%-1) : caption no%,"Supprimer" : on_click no%,supprimer no% = no% + 1 : button no% : left no%,left(no%-1)+width(no%-1) : caption no%,"Charger" : on_click no%,charger
no% = no% + 1 : button no% : left no%,left(no%-1)+width(no%-1) : caption no%,"Zoom -" : on_click no%,reduire no% = no% + 1 : button no% : left no%,left(no%-1)+width(no%-1) : caption no%,"Zoom +" : on_click no%,augmenter
no% = no% + 1 : scroll_bar no% : no_W% = no% : top no%,30 : left no%,50 : width no%,500 min no%,100 : max no%,1200 : position no%,450 : on_change no%,change no% = no% + 1 : scroll_bar no% : no_H% = no% : vertical no% : top no%,60 : left no%,10 : height no%,350 min no%,100 : max no%,1200 : position no%,300 : on_change no%,change dll_on "KGF.dll"
end
creer: if SI%=0 then SI% = dll_call1("CreateScrollImage",handle(0)) if SI%<>0 then res% = dll_call5("LocateScrollImage",SI%,50,60,position(no_W%),position(no_H%)) ' !!!!!!!!!! activer la ligne suivante pour avoir une image résultante de dimensions fixes: ' res% = dll_call4("FixedSizeScrollImage",SI%,1,1500,1000) return supprimer: SI% = dll_call1("DeleteScrollImage",SI%) return change: if SI%<>0 then res% = dll_call5("LocateScrollImage",SI%,50,60,position(no_W%),position(no_H%)) return charger: img$ = file_name$(1) if img$="_" then return if file_exists(img$)=0 then return res% = dll_call1("LoadAnyImageFile",adr(img$)) res% = dll_call1("LoadScrollImage",SI%) return
reduire: if SI%=0 then return if zoom%>25 then zoom% = zoom% - 25 res% = dll_call2("ZoomScrollImage",SI%,zoom%) return augmenter: if SI%=0 then return if zoom%<800 then zoom% = zoom% + 25 res% = dll_call2("ZoomScrollImage",SI%,zoom%) return
L'objet ScrollPanel est une zone de visualisation dans laquelle on peut placer n'importe quel objet Panoramic ayant un handle, tout comme on le ferait dans un panel Panoramic. Mais cet objet est automatiquement équipé de barres de défilement, ce qui permet de visualiser ce qui serait normalement caché. C'est exactement comme les zones de visualisation dans certaines pages Web. Voici une 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
Dernière édition par Klaus le Sam 3 Mar 2018 - 2:22, édité 1 fois | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version d'essai des objets ScrollImage et ScrollPanel Ven 2 Mar 2018 - 22:34 | |
| Bonsoir Klaus
Je viens de tester tes 2 programmes. C'est très intéressant. Je vais approfondir le principe du panel que tu présente sur le 2eme programme...
Tu sais j'avais parlé à un moment que je travaillais sur un objet type Treeview 100% panoramic principalement pour des raisons esthétique. Avec ce principe que tu propose, je m'évite les calculs et la gestion des ascenseurs. Maintenant il faut que je teste en grandeur nature ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version d'essai des objets ScrollImage et ScrollPanel Ven 2 Mar 2018 - 22:41 | |
| Merci d'avoir essayé, Minibug ! Mour ScrollPanel, voici une brève liste des fonctions existantes à ce jour (la doc complète est en cours de réalisation): - Code:
-
SI% = dl_call1("CreateScrollImage",handle(dest%)) res% = dll_call5-"LocateScrollImage",SI%, x%,y%,w%,h%) res% = dll_call4("FixedSizeScrollImage",SI%, act%, w%,h%) : ' act%: 0=autosize 1=fixed size SI% = dll_call1("DeleteScrollImage",SI%) res% = dll_call1("LoadScrollImage",SI%) : ' image dans le presse-papier ! res% = dll_call2("ZoomScrollImage",SI:%,zoom%) : ' zoom% = pourcentage de l'image d'origine res% = dll_call1("GetScrollImageHandle",SI%)
SP% = dll_call1("CreateScrollPanel",handle(dest%)) res% = dll_call5("LocateScrollPanel",SP%, x%,y%,w%,h%) SP% = dll_call1("DeleteScrollPanel",SP%) res% = dll_call4("AttachToScrollPanel",SP%,handle(obj%), x%,y%) res% = dll_call1("GetScrollPanelHandle",SP%) res% = dll_call3("GetInfoAboutScrollPanel",SP%,adr(MaxHor%),adr(MaxVer%)) res% = dll_call3("SetViewOfScrollPanel",SP%,PosHor%,PosVer%) : ' position inchangée si valeur est passée comme -1
res% = dll_call2("ShowFormScrollBars",handle(form%),act%) : ' act%: 0=cacher 1=montrer
Dernière édition par Klaus le Dim 4 Mar 2018 - 1:12, édité 4 fois | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version d'essai des objets ScrollImage et ScrollPanel Ven 2 Mar 2018 - 23:19 | |
| Merci Klaus ! voici un petit test que j'ai réalisé : - Code:
-
dim SP1%, SP2%, SP3%, SP4% dim res% , n% , t$ , x%
dll_on "KGF.dll" SP1% = dll_call1("CreateScrollPanel",handle(0)) res% = dll_call5("LocateScrollPanel",SP1%,5,5,200,300)
PANEL 1 : width 1,200 : height 1,500 res% = dll_call6("AttachToScrollPanel",SP1%,handle(1),0,0,200,500) FOR n%=1 TO 25 PICTURE n%+105 : PARENT n%+105,1 : LEFT n%+105,5 : TOP n%+105,n%*20-18 : HEIGHT n%+105,15 : WIDTH n%+105,15 x%=RND(31)+1 : t$=RIGHT$("00"+STR$(x%),2) : FILE_LOAD n%+105,"D:\BASIC\GPP - 2.03\ico4"+t$+".bmp" ALPHA n%+1 : PARENT n%+1,1 : LEFT n%+1,25 : TOP n%+1,n%*20-18 : CAPTION n%+1,"ligne "+STR$(n%) NEXT n% END Par contre j'ai un ascenseur disgracieux qui apparaît sur le FORM 0. Sans trop savoir pourquoi j'arrive parfois a le faire disparaître en jouant sur la taille du Form en l'agrandissant ou le rétrécissant. Bizarre non ?!!
Dernière édition par Minibug le Ven 2 Mar 2018 - 23:25, édité 1 fois | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version d'essai des objets ScrollImage et ScrollPanel Ven 2 Mar 2018 - 23:22 | |
| - Citation :
- Par contre j'ai un ascenseur disgracieux qui apparaît sur le FORM 0.
Il faut alors que tu réduises une des dimensions dans LocateScrollPanel. Tu as mis une largeur de 200 et une hauteur de 300, à partir de (5,5). Faut voir avec tes dimensions de la form... | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version d'essai des objets ScrollImage et ScrollPanel Ven 2 Mar 2018 - 23:27 | |
| Humm c'est étrange car regarde l'image que je viens de mettre... Après avoir triturer avec la souris la taille du form l'ascenseur a disparu ! EDIT : J'ai trouvé une solution ! En passant le Form en BORDER_HIDE il n'y a plus de problème. Comme c'est l'affichage que je privilégie, je n'ai plus de difficultés. Bon aller c'est fini pour ce soir. Au lit... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version d'essai des objets ScrollImage et ScrollPanel Sam 3 Mar 2018 - 1:45 | |
| J'ai trouvé l'explication ! Lorsque tu définis une hauteur d'objet qui dépasse la hauteur de la zone client de la form, compte tenu de la valeur TOP de l'objet (0 dans ton cas), Windows fait automatiquement apparaître l'ascenseur, et il ne redisparaît pas lorsqu'un change le parent de l'objet. Il suffit de mettre TOP à une grande valeur négative, avant de définir la hauteur de l'objet, et tout fonctionne. Et il faut attacher le panel APRES l'avoir peuplé avec ses objets. Regarde: - Code:
-
dim SP1%, SP2%, SP3%, SP4% dim res% , n% , t$ , x%
dll_on "KGF.dll" SP1% = dll_call1("CreateScrollPanel",handle(0)) res% = dll_call5("LocateScrollPanel",SP1%,5,5,200,300)
PANEL 1 : top 1,-400 : width 1, 200 : height 1,500 FOR n%=1 TO 25 PICTURE n%+105 PARENT n%+105,1 LEFT n%+105,5 TOP n%+105,n%*20-18 : HEIGHT n%+105,15 : WIDTH n%+105,15 x%=RND(31)+1 : t$=RIGHT$("00"+STR$(x%),2) ' FILE_LOAD n%+105,"D:\BASIC\GPP - 2.03\ico4"+t$+".bmp" ALPHA n%+1 PARENT n%+1,1 LEFT n%+1,25 : TOP n%+1,n%*20-18 CAPTION n%+1,"ligne "+STR$(n%) NEXT n% res% = dll_call6("AttachToScrollPanel",SP1%,handle(1), 0, 0,200,500)
END Résultat: Conclusion: créer les panels loin au-dessus ou à gauche de la form 0, les peupler normalement, puis les attacher. La fonction d'attachement les positionnera correctement. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version d'essai des objets ScrollImage et ScrollPanel Sam 3 Mar 2018 - 2:21 | |
| J'ai fait mieux: j'ai supprimé les deux derniers paramètres de la fonction AttachToScrollPanel. Le code se présente maintenant comme ça: - Code:
-
dim SP1%, SP2%, SP3%, SP4% dim res% , n% , t$ , x%
dll_on "KGF.dll" SP1% = dll_call1("CreateScrollPanel",handle(0)) res% = dll_call5("LocateScrollPanel",SP1%,5,5,200,300)
PANEL 1 : top 1,-400 : width 1, 200 : height 1,500 FOR n%=1 TO 25 PICTURE n%+105 PARENT n%+105,1 LEFT n%+105,5 TOP n%+105,n%*20-18 : HEIGHT n%+105,15 : WIDTH n%+105,15 x%=RND(31)+1 : t$=RIGHT$("00"+STR$(x%),2) ' FILE_LOAD n%+105,"D:\BASIC\GPP - 2.03\ico4"+t$+".bmp" ALPHA n%+1 PARENT n%+1,1 LEFT n%+1,25 : TOP n%+1,n%*20-18 CAPTION n%+1,"ligne "+STR$(n%) NEXT n% res% = dll_call4("AttachToScrollPanel",SP1%,handle(1),0,0)
END Recharge la DLL à partir du WebDav. Mes autres posts ci-dessus ont été actualisé pour tenir compte de cette modif. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version d'essai des objets ScrollImage et ScrollPanel Sam 3 Mar 2018 - 9:24 | |
| Une autre solution consiste à remplir la form 0 par un panel avec full_space, de faire un command_target_is sur ce panel, puis déclarer les autres objets normalement. Plus d'ascenseurs: - Code:
-
dim SP1%, SP2%, SP3%, SP4% dim res% , n% , t$ , x%
panel 1000 : full_space 1000 dll_on "KGF.dll" SP1% = dll_call1("CreateScrollPanel",handle(1000)) res% = dll_call5("LocateScrollPanel",SP1%,5,5,200,300)
command_target_is 1000 PANEL 1 : width 1, 200 : height 1,500 FOR n%=1 TO 25 PICTURE n%+105 PARENT n%+105,1 LEFT n%+105,5 TOP n%+105,n%*20-18 : HEIGHT n%+105,15 : WIDTH n%+105,15 x%=RND(31)+1 : t$=RIGHT$("00"+STR$(x%),2) ' FILE_LOAD n%+105,"D:\BASIC\GPP - 2.03\ico4"+t$+".bmp" ALPHA n%+1 PARENT n%+1,1 LEFT n%+1,25 : TOP n%+1,n%*20-18 CAPTION n%+1,"ligne "+STR$(n%) NEXT n% res% = dll_call4("AttachToScrollPanel",SP1%,handle(1),0,0)
END | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version d'essai des objets ScrollImage et ScrollPanel Sam 3 Mar 2018 - 10:47 | |
| Et la solution ultime consiste à utiliser la nouvelle fonction ShowFormScrollBars dans KGF.dll du WebDav, après avoir dimensionné le Panel: - Code:
-
dim SP1%, SP2%, SP3%, SP4% dim res% , n% , t$ , x%
dll_on "KGF.dll" SP1% = dll_call1("CreateScrollPanel",handle(0)) res% = dll_call5("LocateScrollPanel",SP1%,5,5,200,300)
PANEL 1 : width 1, 200 : height 1,500 res% = dll_call2("ShowFormScrollBars",handle(0),0) FOR n%=1 TO 25 PICTURE n%+105 PARENT n%+105,1 LEFT n%+105,5 TOP n%+105,n%*20-18 : HEIGHT n%+105,15 : WIDTH n%+105,15 x%=RND(31)+1 : t$=RIGHT$("00"+STR$(x%),2) ' FILE_LOAD n%+105,"D:\BASIC\GPP - 2.03\ico4"+t$+".bmp" ALPHA n%+1 PARENT n%+1,1 LEFT n%+1,25 : TOP n%+1,n%*20-18 CAPTION n%+1,"ligne "+STR$(n%) NEXT n% res% = dll_call4("AttachToScrollPanel",SP1%,handle(1),0,0)
END Windows crée toujours les scroll_bars, mais maintenant,, on peut les cacher et montrer à volonté. J'ai ajouté la fonction dans la liste des nouvelles fonctions publiée plus haut. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version d'essai des objets ScrollImage et ScrollPanel Sam 3 Mar 2018 - 10:50 | |
| Est-ce que quelqu'un a essayé la nouvelle version de l'objet ScrollImage avec sa fonction "zoom" ? | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version d'essai des objets ScrollImage et ScrollPanel Sam 3 Mar 2018 - 12:22 | |
| Ben désolé Klaus, j'ai pas encore regarder mais je vais le faire... EDIT : J'ai testé et ça fonctionne parfaitement pour moi. Je vais intégrer dans mon programme. C'est vraiment très pratique et très utile. On peut maintenant faire des listes avec des icones comme je l'ai montré ci dessus dans l'image. Avec les PICTUREs et des ALPHAs et ensuite une simple détection du clic donne le résultat. Encore un plus pour Panoramic. Bravo Klaus ! | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version d'essai des objets ScrollImage et ScrollPanel Sam 3 Mar 2018 - 19:27 | |
| Bonsoir klaus J'ai un petit problème de positionnement du PANEL. Sûrement une mauvaise manipulation de ma part... Je t'ai glissé l'image qui résume la situation et la portion de code ou j'ajoute un élément. Merci pour ton aide. - Code:
-
SUB Ajouter_tview(t$,i$,l%) ' t$ = nom de l'objet (Form1) ' i$ = icone correspondante à t$ ' l% = hiérarchie dans le TREEVIEW
compteur_TVIEW%=compteur_TVIEW%+1 IF compteur_TVIEW%>22 THEN HEIGHT TREE%,compteur_TVIEW%*19+7 res% = dll_call2("ShowFormScrollBars",handle(CONT_GEST_OBJ%),0) res% =dll_call4("AttachToScrollPanel",PAN_TREE%,handle(TREE%),0,0)
PICTURE no% : PARENT no%,TREE% : LEFT no%,l%*20-15 TOP no%,compteur_TVIEW%*19-14 : WIDTH no%,15 : HEIGHT no%,15 FILE_LOAD no%,chemin$+"\ico4"+i$+".bmp" : STRETCH_ON no% : no%=no%+1
ALPHA no% : PARENT no%,TREE% : LEFT no%,l%*20+5 TOP no%,compteur_TVIEW%*19-15 : FONT_SIZE no%,10 : COLOR no%,90,90,90 FONT_COLOR no%,255,255,255 : CAPTION no%,t$ : ITEM_ADD DLI_TVIEW%,no% ON_CLICK no%,select_tview : no%=no%+1 END_SUB EDIT : Si j'ajoute un élément avec l’ascenseur bloqué tout en haut alors tout se passe bien. Mais si l'ascenseur est bloqué en bas alors il y a un décalage du PANEL vers le bas. Sinon les éléments sont bien ajoutés au bon endroit et le PANEL est aux bonnes dimensions. Il me semble aussi que plus la hauteur du PANEL est importante, plus le décalage est important lui aussi. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version d'essai des objets ScrollImage et ScrollPanel Sam 3 Mar 2018 - 23:30 | |
| J'ai du mal à comprendre ta SUB. Pourquoi as-tu un appel - Code:
-
res% =dll_call4("AttachToScrollPanel",PAN_TREE%,handle(TREE%),0,0) dans ta SUB ? Si je comprends bien, cette SUB sera appelée pour chaque ligne ajoutée à ta construction. Or, l'objet de numéro TREE% est toujours le même et est déjà ajouté à PAN_TREE%... Il y a quelque chose qui ne va pas, dans cette logique. Dans le code sur lequel j'ai travaillé pour résoudre ton problème d'ascenseur, il y avait une boucle de construction de la structure (25 éléments), et à la fin seulement, le panel 1 était attaché à SP1%, en un seul appel. Essaie de t'inspirer de cette logique. Car avec ce que tu fais, tu bousilles complètement la structure interne, en ajoutant autant de fois que ta SUB est appelée, le même objet TREE%. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version d'essai des objets ScrollImage et ScrollPanel Dim 4 Mar 2018 - 0:01 | |
| Bonsoir Klaus. J'ai refait un code rapide pour te montrer ce que je veux réaliser mais ce n'est peut être pas possible ! Je dois pouvoir ajouter des lignes a tous moment dans le panel... Pour voir le problème il faut ajouter des lignes jusqu’à l'apparition de l'ascenseur. Ensuite il faut positionner l'ascenseur tout en bas et ajouter de nouvelles lignes. Je t'invite a tester le code ci dessous. Il met en évidence le problème. - Code:
-
DIM res% , no% , compteur% DIM FORM% , TREE% , PAN_TREE%
LABEL Ajouter_tview
DLL_ON "KGF.dll"
FORM%=no% : no%=no%+1
PAN_TREE%=dll_call1("CreateScrollPanel",handle(FORM%)) res%=dll_call5("LocateScrollPanel",PAN_TREE%,5,5,100,200)
PANEL no% : PARENT no%,FORM% : WIDTH no%,95 : HEIGHT no%,195 : TREE%=no% : no%=no%+1 res%=dll_call2("ShowFormScrollBars",handle(FORM%),0) BUTTON no% : LEFT no%,210 : TOP no%,5 : CAPTION no%,"AJOUTER" : ON_CLICK no%,Ajouter_tview : no%=no%+1
END
Ajouter_tview: compteur%=compteur%+1 IF compteur%>10 THEN HEIGHT TREE%,compteur%*19+7 ALPHA no% : PARENT no%,TREE% : LEFT no%,5 : TOP no%,compteur%*19-15 : CAPTION no%,"ligne "+STR$(compteur%) : no%=no%+1 res%=dll_call4("AttachToScrollPanel",PAN_TREE%,handle(TREE%),0,0) RETURN | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version d'essai des objets ScrollImage et ScrollPanel Dim 4 Mar 2018 - 0:18 | |
| Bon j'ai trouvé une solution un peu radicale mais qui fonctionne. 1 / Je détruit le SCROLL_PANEL 2 / J'ajoute la nouvelle ligne 3 / Je reconstruit le nouveau SCROLL_PANEL Et là ça fonctionnne. Voila le code : - Code:
-
DIM res% , no% , compteur% DIM FORM% , TREE% , PAN_TREE%
LABEL Ajouter_tview
DLL_ON "KGF.dll"
FORM%=no% : no%=no%+1
PAN_TREE%=dll_call1("CreateScrollPanel",handle(FORM%)) res%=dll_call5("LocateScrollPanel",PAN_TREE%,5,5,100,200)
PANEL no% : PARENT no%,FORM% : WIDTH no%,95 : HEIGHT no%,195 : TREE%=no% : no%=no%+1 res%=dll_call2("ShowFormScrollBars",handle(FORM%),0) BUTTON no% : LEFT no%,210 : TOP no%,5 : CAPTION no%,"AJOUTER" : ON_CLICK no%,Ajouter_tview : no%=no%+1
END
Ajouter_tview: compteur%=compteur%+1 IF compteur%>10 THEN HEIGHT TREE%,compteur%*19+7 ALPHA no% : PARENT no%,TREE% : LEFT no%,5 : TOP no%,compteur%*19-15 : CAPTION no%,"ligne "+STR$(compteur%) : no%=no%+1 res% = dll_call1("DeleteScrollPanel",PAN_TREE%)
PAN_TREE%=dll_call1("CreateScrollPanel",handle(FORM%)) res%=dll_call5("LocateScrollPanel",PAN_TREE%,5,5,100,200) res%=dll_call2("ShowFormScrollBars",handle(FORM%),0) res%=dll_call4("AttachToScrollPanel",PAN_TREE%,handle(TREE%),0,0) RETURN Une dernière question : est-il possible de gérer la position de l'ascenseur du SCROLL_PANEL par programme comme on le fait avec POSITION ? | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version d'essai des objets ScrollImage et ScrollPanel Dim 4 Mar 2018 - 0:49 | |
| Pour ta solution "radicale": c'est la bonne, puisque c'est la seule !
Pour le positionnement dans le ScrollPanel: Je vais faire une fonction pour cela. Techniquement, c'est possible. Mais attention: le positionnement se fait en pixels en fonction de la hauteur (ou largeur) du ScrollPanel, et ces dimensions sont calculées automatiquement lors de l'ajout d'objets dans le panel. Ce que je vais faire: je vais créer une fonctions retournant les valeurs maxi horizontales et verticales, puis une fonction permettant d'imposer une valeur horizonale et/ou verticale des scrollbars. Ca viendra bientôt. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version d'essai des objets ScrollImage et ScrollPanel Dim 4 Mar 2018 - 0:58 | |
| Merci pour le retour Klaus ! Pour la suite prends ton temps. Ce n'est pas une priorité. Je travail sur autre chose... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version d'essai des objets ScrollImage et ScrollPanel Dim 4 Mar 2018 - 1:14 | |
| Si, si - c'est fait : Télécharge KGF.dll du WebDav, et tu auras 2 nouvelles fonctions, documentées plus haut mais que je rappele ici: - Code:
-
res% = dll_call3("GetInfoAboutScrollPanel",SP%,adr(MaxHor%),adr(MaxVer%)) res% = dll_call3("SetViewOfScrollPanel",SP%,PosHor%,PosVer%) : ' position inchangée si valeur est passée comme -1 Avec ça, tu peux positionner les scrollbars comme tu veux. | |
| | | Contenu sponsorisé
| Sujet: Re: Version d'essai des objets ScrollImage et ScrollPanel | |
| |
| | | | Version d'essai des objets ScrollImage et ScrollPanel | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |