FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» bouton dans autre form que 0
Défilement dans une grande image Emptypar Klaus Aujourd'hui à 12:43

» KGF_dll - nouvelles versions
Défilement dans une grande image Emptypar Klaus Aujourd'hui à 11:41

» Gestion d'un système client-serveur.
Défilement dans une grande image Emptypar Klaus Aujourd'hui à 10:23

» PANORAMIC V 1
Défilement dans une grande image Emptypar papydall Sam 4 Mai 2024 - 3:43

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Défilement dans une grande image Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
Défilement dans une grande image Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Défilement dans une grande image Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Défilement dans une grande image Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Défilement dans une grande image Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Défilement dans une grande image Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Défilement dans une grande image Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Défilement dans une grande image Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
Défilement dans une grande image Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Défilement dans une grande image Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Défilement dans une grande image Emptypar papydall Dim 21 Avr 2024 - 23:30

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-39%
Le deal à ne pas rater :
Pack Home Cinéma Magnat Monitor : Ampli DENON AVR-X2800H, Enceinte ...
1190 € 1950 €
Voir le deal

 

 Défilement dans une grande image

Aller en bas 
4 participants
AuteurMessage
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Défilement dans une grande image Empty
MessageSujet: Défilement dans une grande image   Défilement dans une grande image EmptyDim 20 Déc 2020 - 16:12

(Voir le sujet Les barres de défilement, dans la rubrique A l'Aide: je me suis largement inspiré de l'intervention de Marc)
Peut-être que j'enfonce une porte ouverte, le but est de naviguer dans une grande image qui ne tient pas dans l'écran
(et à fortiori dans le Form 0).
Mon image à moi fait 2403 x 3591 pixels:
Code:
LABEL Redim0,Dscr
DIM fi$,pic,hf,wf,i,scv,sch
fi$ = "C:\GRAPH\JPG\Joconde.jpg"
hf = 3591: wf = 2403: ' dimensions de l'image.
ON_RESIZE 0,Redim0
pic = 5: PICTURE pic: WIDTH pic,wf: HEIGHT pic,hf: FILE_LOAD pic,fi$
scv = 1: SCROLL_BAR scv: VERTICAL scv : ON_CHANGE scv,Dscr
sch = 2: SCROLL_BAR sch: HORIZONTAL sch: ON_CHANGE sch,Dscr
GOSUB Redim0: ' init
END
' ===================================================================
Dscr:
  ' Déplacement d'un scroll bar
  i = -1*(hf-HEIGHT_CLIENT(0)): TOP pic,i*POSITION(scv)/100: ' V
  i = -1*(wf-WIDTH_CLIENT(0)): LEFT pic,i*POSITION(sch)/100: ' H
RETURN
' ===================================================================
Redim0:
  ' Redimensionnement du Form 0 -> redifinition des scroll bars
  LEFT scv,WIDTH_CLIENT(0)-WIDTH(scv): HEIGHT scv,HEIGHT_CLIENT(0): ' V
  TOP sch,HEIGHT_CLIENT(0)-HEIGHT(sch): WIDTH sch,WIDTH_CLIENT(0): ' H
RETURN
' ===================================================================[code][/code]
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2693
Date d'inscription : 13/09/2009

Défilement dans une grande image Empty
MessageSujet: Re: Défilement dans une grande image   Défilement dans une grande image EmptyDim 20 Déc 2020 - 18:05

Superbe !
Sub très pratique à mettre de côté !
Bravo et merci, JL35 !
(euh, le  « (code)(/code) » final est peut-être en trop ( Laughing )
king
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Défilement dans une grande image Empty
MessageSujet: Re: Défilement dans une grande image   Défilement dans une grande image EmptyDim 20 Déc 2020 - 20:58

T'as raison jjn4, petite fausse manoeuvre de mise sur le forum...
avec quelques fautes de frappe (redifinition...) Wink
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2693
Date d'inscription : 13/09/2009

Défilement dans une grande image Empty
MessageSujet: Re: Défilement dans une grande image   Défilement dans une grande image EmptySam 2 Jan 2021 - 18:39

Je me suis aperçu que si ça marchait avec une souris sur l'ascenseur,
par contre, sur un écran tactile à faire monter ou descendre l'image
avec le doigt, ça ne marche pas.
Alors, j'ai essayé ce petit ajout au programme de JL35.
(Désolé, JL35, d'avoir préalablement quelque peu jijiennquatrisé ton programme)

Code:
rem ' Articulation gde image dans pt form avec ascenseur
rem ' JL35 - https://panoramic.1fr1.net/t6535-defilement-dans-une-grande-image
LABEL redim_0,dim_scr , move
DIM PH$,HTPH%,LGPH%,I%,J%,PS%
PH$="C:\Robo.jpg"
HTPH%=3591 : LGPH%=2403: ' dimensions de l'image.
width 0,1200 : height 0,700 : ON_RESIZE 0,redim_0
PICTURE 5 : WIDTH 5,LGPH% : HEIGHT 5,HTPH%: FILE_LOAD 5,PH$ : on_mouse_move 5,move
SCROLL_BAR 1: VERTICAL 1 : width 1,50 : ON_CHANGE 1,dim_scr
SCROLL_BAR 2: HORIZONTAL 2 : ON_CHANGE 2,dim_scr
GOSUB redim_0: ' init
END
' ===================================================================
dim_scr:
  ' Déplacement d'un scroll bar
  I% = -1*(HTPH%-HEIGHT_CLIENT(0)): TOP 5,I%*POSITION(1)/100: ' V
  I% = -1*(LGPH%-WIDTH_CLIENT(0)): LEFT 5,I%*POSITION(2)/100: ' H
RETURN
' ===================================================================
redim_0:
  ' Redimensionnement du Form 0 -> redéfinition des scroll bars
  LEFT 1,WIDTH_CLIENT(0)-WIDTH(1): HEIGHT 1,HEIGHT_CLIENT(0): ' V
  TOP 2,HEIGHT_CLIENT(0)-HEIGHT(2): WIDTH 2,WIDTH_CLIENT(0)-17: ' H
RETURN
' ===================================================================
move: : ' Ajout perso pour faire bouger l'image en tactile
   J%=mouse_y_position(5)
   if J%<>PS%
      if J%>PS%
         top 5,top(5)+1
      else
         top 5,top(5)-1
      end_if
   end_if
   PS%=mouse_y_position(5)
return
Bon, ça marchotte, mais ça n'est pas vraiment terrible !
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

Défilement dans une grande image Empty
MessageSujet: Re: Défilement dans une grande image   Défilement dans une grande image EmptyDim 3 Jan 2021 - 12:09

Salut jjnatriseur!

Voici un programme qui permet de déplacer une image dans un picture tant que le bouton gauche de la souris est enfoncé. Vois si ce code peut t'aider pour ton écran tactile.

Code:
maximize 0
'
label load_image_dans_container_my_image,bouge2
dim null,container_my_image,my_image,lastX,lastY,pastX,pastY,imx,imy,taille_imx,taille_imy

' génère une image
container_my_image=1000
my_image=2000
gosub load_image_dans_container_my_image

' déplace l'image dans le container_my_image
on_mouse_move container_my_image,bouge2


END
load_image_dans_container_my_image:
' ****************** fabrique une image pour la démonstration : debut **********
create_hide
  picture 123 : width 123,1000 : height 123,1000  :' fabrique un picture temporaire pour générer une image de container_my_image*container_my_image
create_show
color 123,0,0,0
dim i,x1,y1,x2,y2,r,g,b
2d_target_is 123
for i=1 to 100
   x1=int(rnd(500))
   y1=int(rnd(500))
   x2=int(rnd(500)+500)
   y2=int(rnd(500)+500)
   r=int(rnd(255))
   g=int(rnd(255))
   b=int(rnd(255))
   2d_pen_color r,g,b
   2d_fill_color r,g,b
   2d_rectangle x1,y1,x2,y2
next i
clipboard_copy 123
2d_target_is 0 : delete 123  :' plus besoin du picture temporaire
' ****************** fabrique une image pour la démonstration : fin ************

image my_image
clipboard_paste my_image :' image de démonstration
' on peut charger une image à partir du disque dur
' file_load my_image,"Mon_image.bmp"

' dimension de my_image
taille_imx=1000
taille_imy=1000

' le container; en fait c'est un picture
picture container_my_image : width container_my_image,550 : height container_my_image,550 : top container_my_image,50 : left container_my_image,150 :' un container_my_image de taille 550*550
2d_target_is container_my_image : 2d_image_paste my_image,0,0                                                                                       :' colle l'image dans le picture

return

bouge2:
off_mouse_move container_my_image
   '
   null=scancode :' rafraichir le scancode
   if scancode=1
      2d_clear
      pastX=mouse_x_position(container_my_image)
      pastY=mouse_y_position(container_my_image)
      imx=imx+(pastx-lastx)
      imy=imy+(pasty-lasty)
      if imx<width(container_my_image)-taille_imx then imx=width(container_my_image)-taille_imx     :' <--- taille_imx
      if imx>0 then imx=0
      if imy<height(container_my_image)-taille_imy then imy=height(container_my_image)-taille_imy   :' <--- taille_imy
      if imy>0 then imy=0
      2d_image_paste my_image,imx,imy
      lastx=pastx
      lasty=pasty
   else
      lastX=mouse_x_position(container_my_image)
      lastY=mouse_y_position(container_my_image)
   end_if
   '
on_mouse_move container_my_image,bouge2 :' pb(bug?) avec bouton gauche: si le bouton est enfoncé dans le container_my_image, l'évènement est
                                        :' détecté même si la souris est en dehors du container_my_image!!! Pas génant mais bon à connaitre
return

Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2693
Date d'inscription : 13/09/2009

Défilement dans une grande image Empty
MessageSujet: Re: Défilement dans une grande image   Défilement dans une grande image EmptyDim 3 Jan 2021 - 17:49

Ah oui, ça a l'air nettement plus efficace !
Merci, silverman !
Je l'essai sur mon programme...
cheers
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
jjn4

jjn4


Nombre de messages : 2693
Date d'inscription : 13/09/2009

Défilement dans une grande image Empty
MessageSujet: Re: Défilement dans une grande image   Défilement dans une grande image EmptyMar 5 Jan 2021 - 16:54

@silverman :
Je l'ai adapté.
Ca marche bien sur l'ordinateur sur lequel je programme
et qui fonctionne avec la souris.
Mais ça ne fonctionne pas sur la tablette qui marche en tactile
(par contre, si j'équipe cette tablette d'un clavier et d'une souris, là ça marche (mais pas en tactile)).
scratch
Apparemment, le tactile ne fonctionne pas comme une souris
avec un mouse_up suivi d'un mouse_down après un déplacement de la souris levée,
il semblerait que c'est sans cesse en mouse_down, le pointeur changeant
simplement miraculeusement de localisation lorsqu'on replace le doigt ailleurs.
(Finalement, j'ai adapté ton système avec des bons vieux boutons Laughing )
geek
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Marc

Marc


Nombre de messages : 2389
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Défilement dans une grande image Empty
MessageSujet: Re: Défilement dans une grande image   Défilement dans une grande image EmptyMar 5 Jan 2021 - 18:26

Bonjour à tous !

@JJn4
Je viens de tester les barres de défilement (scroll_bar) avec une tablette (chinoise) sous Windows 10 : le tactile fonctionne parfaitement bien pour monter ou descendre les ascenseurs.
Ce test a été effectué avec la version 0.29i9 de Panoramic et ce source :

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

Après avoir modifié mon source, j'ai effectué le test sous Android 8.0 et P4A version 0.13, pas de problème, avec le doigt on actionne bien les ascenseurs.

EDIT :

Pour finir, je viens de tester le source de Silverman, il fonctionne parfaitement bien ! Bravo Silverman ! cheers
Sur la tablette Windows 10, je déplace sans problème l'image avec le doigt . c'est très fluide et agréable. C'est infiniment plus pratique que les ascenseurs.
Merci Silverman pour ton partage ! sunny
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2693
Date d'inscription : 13/09/2009

Défilement dans une grande image Empty
MessageSujet: Re: Défilement dans une grande image   Défilement dans une grande image EmptyMer 6 Jan 2021 - 15:20

@Marc:
Désolé, mais je ne suis pas aussi optimiste.
Avec le programme que tu viens de publier, on peut effectivement
faire monter ou descendre l'ascenseur avec une souris ou en tactile.
silent
Mais avec ce que proposait Silverman en tactile, de faire monter ou descendre le texte lui-même,
par exemple, de poser le doigt sur ton "Hello !" et de le faire monter ou descendre
sans toucher à l'ascenseur. Et là, ça ne marche pas avec ton programme.
Et avec celui de silverman, ça marche (au niveau du texte) avec une souris,
mais ça pétouille sur ma tablette en tactile en revenant systématiquement au même point,
si bien qu'on n'arrive pas à avancer dans le sens de la montée ou de la descente.
rabbit
Bon, il n'en reste pas moins vrai que la solution initiée par JL35 n'est pas mal du tout.
Créer un ascenseur qui ne se crée pas automatiquement, c'est bien aussi.
Mais tout cela fait bien beaucoup de tintouin pour un truc qui se faisait tout seul auparavant.
Par exemple, j'ai encore des vieux programmes créés avec la version panoramic 9.26
eh bien l'ascenseur se crée automatiquement et en tactile, il suffit de faire glisser
son doigt sur le texte vers le haut ou vers le bas pour que le texte monte ou descende.
Dommage qu'avec les versions ultérieures, cette facilité n'existe plus !
Sad
C'est curieux que ça marche sur ta tablette au niveau du texte :
La mienne est une vielle de 8 ans qui marche en Windows 8, peut-être est-elle trop vieille ?
scratch
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Contenu sponsorisé





Défilement dans une grande image Empty
MessageSujet: Re: Défilement dans une grande image   Défilement dans une grande image Empty

Revenir en haut Aller en bas
 
Défilement dans une grande image
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Défilement d’images dans tous les sens
» Troncature dans une image
» Atteindre un objet dans une grande fenêtre
» Découpe dans une image
» Découpe dans une image

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: