FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» [Résolu] Un prg Panoramic s'abime avec le temps (erreur)
par Oscaribout Aujourd'hui à 13:48

» Planétarium virtuel.
par Pedro Alvarez Aujourd'hui à 9:56

» Dessin 2D: largeur de trait (résolu !)
par Jicehel Hier à 15:16

» Promenade dans le Ciel
par papydall Hier à 3:13

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Sam 23 Juin 2018 - 17:00

» Nouvelle version 0.34
par jean_debord Sam 23 Juin 2018 - 9:39

» Quantité de mémoire utilisée par un exe
par mindstorm Jeu 21 Juin 2018 - 21:22

» Projet de planétarium virtuel.
par Jean Claude Jeu 21 Juin 2018 - 19:02

» Animation: Feux de signalisation
par Minibug Mer 20 Juin 2018 - 20:28

» Problème avec 'file_load'.
par Pedro Alvarez Lun 18 Juin 2018 - 8:12

» Version instantanée V 0.9.28i20 du 13/06/2018
par jjn4 Sam 16 Juin 2018 - 14:25

» string$(0,chr$(32)) sans erreur
par silverman Ven 15 Juin 2018 - 19:56

» Version instantanée V 0.9.28i19 du 13/06/2018
par Minibug Ven 15 Juin 2018 - 19:14

» Mes souhaits d'amélioration de Panoramic.
par Pedro Alvarez Jeu 14 Juin 2018 - 20:17

» [RÉSOLU] Message d'erreur impossible à indentifier
par Minibug Mer 13 Juin 2018 - 20:52

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2018
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

Partagez | 
 

 Version d'essai des objets ScrollImage et ScrollPanel

Aller en bas 
AuteurMessage
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2971
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2971
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2971
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: 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... Sleep Sleep Sleep
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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" ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2971
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: 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... drunken drunken drunken


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 ! cheers
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Minibug

avatar

Nombre de messages : 2971
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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%.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2971
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Minibug

avatar

Nombre de messages : 2971
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: 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 ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2971
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: 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... drunken
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: Version d'essai des objets ScrollImage et ScrollPanel   

Revenir en haut Aller en bas
 
Version d'essai des objets ScrollImage et ScrollPanel
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» After effect CS4
» Antivirus Kaspersky (version d'essaie 1mois)
» Version PDMS 12.0.SP6
» Offre promotionnelle : SnagIT 7.25 en version gratuite !
» Comment envoyer une détection chez avira avec Antivir 9 français - Version Classic

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: