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
» Logiciel de planétarium.
Exemple de potentiomètre rectiligne Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Exemple de potentiomètre rectiligne Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Exemple de potentiomètre rectiligne Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Exemple de potentiomètre rectiligne Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Exemple de potentiomètre rectiligne Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Exemple de potentiomètre rectiligne Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Exemple de potentiomètre rectiligne Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Exemple de potentiomètre rectiligne Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Exemple de potentiomètre rectiligne Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Exemple de potentiomètre rectiligne Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Exemple de potentiomètre rectiligne Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Exemple de potentiomètre rectiligne Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Exemple de potentiomètre rectiligne Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Exemple de potentiomètre rectiligne Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Exemple de potentiomètre rectiligne Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-25%
Le deal à ne pas rater :
PC Portable Gamer 16,1” HP Victus 16 – 16 Go /512 Go
749.99 € 999.99 €
Voir le deal

 

 Exemple de potentiomètre rectiligne

Aller en bas 
2 participants
AuteurMessage
Marc

Marc


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

Exemple de potentiomètre rectiligne Empty
MessageSujet: Exemple de potentiomètre rectiligne   Exemple de potentiomètre rectiligne EmptyDim 24 Avr 2022 - 10:00

Bonjour à tous !

Voici un exemple de création d'un potentiomètre rectiligne avec la gestion du déplacement de son curseur.

Exemple de potentiomètre rectiligne Potent10

Code:
' Exemple de potentiometre rectiligne
' Marc - Avril 2022
' programme en langage Panoramic
dim ySouris%, valeur, null%
label deplacerBouton

color 0,80,80,200
potentiometre(330,125) :' en paramètres (x,y) position du dessin du potentiomètre

' affichage en % de la position du bouton
alpha 10
top 10,185
left 10,185
font_size 10,14
font_color 10,255,255,255

' prépositionnement du bouton et affichage valeur
valeur = 27
sprite_y_position 2,150-(valeur*3/2)
caption 10,str$(valeur) + "%"

end

sub potentiometre(x%,y%)
   dim_local i%, e%

   ' objet PICTURE servant de planche à dessins
   create_hide
   picture 1
   width 1,60
   height 1,165
   2d_target_is 1
   create_show

   ' objet IMAGE pour la copie des dessins effecués
   image 2

   ' dessiner le décor de fond du potentiomètre
   color 1,80,80,200
   2d_pen_color 255,255,255
   e% = 7
   for i% = 1 to 11
       2d_line 0,e%,60,e%
       e% = e% + 15    
   next i%
   2d_pen_color 0,0,1
   2d_fill_color 0,0,1
   2d_rectangle 27,0,33,165

   ' copie du dessin effectué en mémoire dans l'objet IMAGE 2
   2d_image_copy 2,0,0,60,165
  
   ' Corps du potentiomètre
   scene2d 3
   top 3,y%
   left 3,x%
   width 3,60
   height 3,165
   on_mouse_down 3,deplacerBouton
  
   ' creer sprite servant d'image de fond et copier le dessin dessus
   sprite 1
   sprite_image_load 1,2
  
   ' dessiner le bouton du potentiomètre
   color 1,0,0,0 :' effacer planche à dessin (picture 1)
   2d_pen_color 50,50,50
   2d_fill_color 50,50,50
   2d_rectangle 0,0,44,15
   2d_pen_color 255,255,255
   2d_fill_color 255,255,255
   2d_rectangle 0,6,44,9
   2d_pen_color 0,0,0
   2d_point 0,0
   2d_point 43,14
   2d_point 0,14
   2d_point 43,0
  
   2d_image_copy 2,0,0,44,15
  
   ' creer le sprite du bouton et copier le dessin dessus
   sprite_create_hide
   sprite 2
   sprite_image_load 2,2
   sprite_position 2,8,0
   sprite_show 2
end_sub

deplacerBouton:
    off_mouse_down 3
    ' inhibition bouton droit souris
    if mouse_right_down(3)=1
        on_mouse_down 3,deplacerBouton    
        return
    end_if

    ' raffraichissement de l'état des boutons de la souris
    null% = mouse_left_up(3)
    null% = mouse_left_down(3)

    while mouse_left_up(3) = 0 :' Tant que le bouton gauche souris est appuyé            
        ySouris% = mouse_y_position(3)
        if ySouris% < 0 :' limite haute
            sprite_y_position 2,0
        end_if
        if ySouris% > 160
            sprite_y_position 2,150 :' limite basse
        end_if
        if ySouris% > 0 and ySouris% < 150
            sprite_y_position 2,ySouris%
        end_if
        valeur = sprite_y_position(2)
        valeur = 150 - valeur
        valeur = int(valeur * 2/3)
        caption 10,str$(valeur) + "%"
    end_while
    on_mouse_down 3,deplacerBouton    
return

Le corps du potentiomètre est une scene2D ornée d'un sprite décoratif qui représente la sérigraphie.
Le bouton est un sprite.

Cet exemple constitue une base à personnaliser (dimensions, couleurs, forme du bouton, ...)

Bonne journée à tous !

EDIT : j'ai ajouté un autre exemple un peu plus bas dans ce fil de discussion.
Exemple de potentiomètre rectiligne Potent14


EDIT du 10/05/2022 : nouvel exemple de 3 potentiomètres horizontaux ajouté un peu plus bas...

Exemple de potentiomètre rectiligne Potent15



Dernière édition par Marc le Lun 16 Mai 2022 - 22:39, édité 3 fois

Yannick aime ce message

Revenir en haut Aller en bas
Minibug

Minibug


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

Exemple de potentiomètre rectiligne Empty
MessageSujet: Re: Exemple de potentiomètre rectiligne   Exemple de potentiomètre rectiligne EmptyDim 24 Avr 2022 - 10:26

Bonjour Marc,

Toujours innovant et sympa ! Merci. Wink

Bon après... Plus de 100 lignes pour un Track_bar et sa gestion c'est pas un peu beaucoup ?!
L'intérêt étant bien entendu de quitter les sentiers battus et ça j'avoue c'est génial.

Et puis c'est vrai que si l'on veux faire plus compact en terme de programme,
on peux toujours utiliser les objets IMAGE ou BUTTON_PICTURE et là c'est encore plus simple !
Mais ça c'est une autre histoire... Smile

Juste pour corser l'affaire, il serait intéressant de pouvoir utiliser l'objet horizontalement ou verticalement.
Bon ok je sors.... Laughing Laughing Laughing

Encore merci pour le partage Marc et bon dimanche à tous ! cheers

Yannick aime ce message

Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Marc

Marc


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

Exemple de potentiomètre rectiligne Empty
MessageSujet: Re: Exemple de potentiomètre rectiligne   Exemple de potentiomètre rectiligne EmptyLun 25 Avr 2022 - 23:18

Minibug a écrit:
Toujours innovant et sympa !...
Merci Minibug !


En partant du code de "base" ci-dessus, j'ai réalisé un autre exemple de potentiomètre rectiligne :

Exemple de potentiomètre rectiligne Potent12

Code:
' Modèle de potentiomètre rectiligne
' Marc - Avril 2022
' Ecrit en langage Panoramic
dim ySouris%, valeur, null%
label deplacerBouton

color 0,10,10,10
potentiometre(330,125) :' en paramètres (x,y) position du dessin du potentiomètre

' affichage en % de la position du bouton
alpha 10
top 10,185
left 10,185
font_size 10,14
font_color 10,255,255,255

' prépositionnement du bouton et affichage valeur
valeur = 26
sprite_y_position 2,155-(valeur * 0.745)
caption 10,str$(valeur) + "%"

end
' ------------------------------------------------------------------------------
sub potentiometre(x%,y%)
   dim_local i%, e%, c%, l%,x1%,y1%

   ' objet PICTURE servant de planche à dessins
   create_hide
   picture 1
   width 1,54
   height 1,230
   2d_target_is 1
   create_show

   ' objet IMAGE pour la copie des dessins effecués
   image 2

   ' dessiner le décor de fond du potentiomètre
   color 1,66,63,70
   for i% = 0 to 1000
   c% = int(50+rnd(30))
   l% = int(rnd(10))
   x1% = int(rnd(55))
   y1% = int(rnd(265))
       2d_pen_color c%,c%,c%
       2d_line x1%,y1%,x1%+l%,y1%
   next i%

   ' sérigraphie
   2d_pen_color 180,180,180
   e% = 39
   for i% = 1 to 10
       2d_line 12,e%,42,e%
       e% = e% + 15    
   next i%
  
   2d_pen_color 10,10,10
   2d_fill_color 10,10,10
   2d_rectangle 25,30,29,183

   ' légende
   2d_pen_color 200,200,200
   2d_fill_color 200,200,200
   2d_rectangle 0,208,55,222
   font_size 1,8
   font_name 1,"Arial"
   print_target_is 1
   print_locate 10,208
   print "Master"

   ' copie en mémoire du dessin effectué
   2d_image_copy 2,0,0,54,230

   ' Corps du potentiomètre
   scene2d 3
   top 3,y%
   left 3,x%
   width 3,54
   height 3,230
   on_mouse_down 3,deplacerBouton
  
   ' creer sprite servant d'image de fond et copier le dessin dessus
   sprite 1
   sprite_image_load 1,2
  
   ' dessiner le bouton du potentiomètre
   color 1,2,2,2 :' effacer planche à dessin (picture 1)
   2d_pen_color 10,10,10
   2d_line 0,0,16,0
   2d_pen_color 11,11,11
   2d_line 0,1,16,1
   2d_pen_color 12,12,12
   2d_line 0,2,16,2
   2d_pen_color 13,13,13
   2d_line 0,3,16,3
   2d_pen_color 14,14,14
   2d_line 0,4,16,4
   2d_pen_color 37,37,37
   2d_line 0,5,16,5
   2d_pen_color 38,38,38
   2d_line 0,6,16,6
   2d_pen_color 10,10,10
   2d_line 0,7,16,7
   2d_pen_color 2,2,2
   2d_line 0,8,16,8
   2d_pen_color 2,2,2
   2d_line 0,9,16,9
   2d_pen_color 2,2,2
   2d_line 0,10,16,10
   2d_pen_color 2,2,2
   2d_line 0,11,16,11
   2d_pen_color 2,2,2
   2d_line 0,12,16,12
   2d_pen_color 2,2,2
   2d_line 0,13,16,13
   2d_pen_color 2,2,2
   2d_line 0,14,16,14
   2d_pen_color 2,2,2
   2d_line 0,15,16,15
   2d_pen_color 20,20,20
   2d_line 0,16,16,16
   2d_pen_color 15,15,15
   2d_line 0,17,16,17
   2d_pen_color 180,180,180
   2d_line 0,18,16,18
   2d_pen_color 180,180,180
   2d_line 0,19,16,19
   2d_pen_color 11,11,11
   2d_line 0,20,16,20
   2d_pen_color 15,15,15
   2d_line 0,21,16,21
   2d_pen_color 11,11,11
   2d_line 0,22,16,22
   2d_pen_color 12,12,12
   2d_line 0,23,16,23
   2d_pen_color 18,18,18
   2d_line 0,24,16,24
   2d_pen_color 14,14,14
   2d_line 0,25,16,25
   2d_pen_color 20,20,20
   2d_line 0,26,16,26
   2d_pen_color 16,16,16
   2d_line 0,27,15,27
   2d_pen_color 19,19,19
   2d_line 0,28,16,28
   2d_pen_color 18,18,18
   2d_line 0,29,16,29
   2d_pen_color 20,20,20
   2d_line 0,30,16,30
   2d_pen_color 51,51,51
   2d_line 0,31,16,31
   2d_pen_color 50,50,50
   2d_line 0,32,16,32
   2d_pen_color 15,15,15
   2d_line 0,33,16,33

   2d_image_copy 2,0,0,16,38
  
   ' creer le sprite du bouton et copier le dessin dessus
   sprite_create_hide
   sprite 2
   sprite_image_load 2,2
   sprite_position 2,19,20
   sprite_show 2
end_sub
' ------------------------------------------------------------------------------
deplacerBouton:
    off_mouse_down 3
    ' inhibition bouton droit souris
    if mouse_right_down(3)=1
        on_mouse_down 3,deplacerBouton    
        return
    end_if

    ' raffraichissement de l'état des boutons de la souris
    null% = mouse_left_up(3)
    null% = mouse_left_down(3)

    while mouse_left_up(3) = 0 :' Tant que le bouton gauche souris est appuyé            
        ySouris% = mouse_y_position(3)-19
        if ySouris% < 20 :' limite haute
            sprite_y_position 2,20
        end_if
        if ySouris% > 155
            sprite_y_position 2,155 :' limite basse
        end_if
        if ySouris% > 20 and ySouris% < 155
            sprite_y_position 2,ySouris%
        end_if
        valeur = sprite_y_position(2)
        valeur = 155 - valeur
        valeur = int(valeur * 0.745)
        caption 10,str$(valeur) + "%"
    end_while
    on_mouse_down 3,deplacerBouton    
return
Revenir en haut Aller en bas
Marc

Marc


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

Exemple de potentiomètre rectiligne Empty
MessageSujet: Re: Exemple de potentiomètre rectiligne   Exemple de potentiomètre rectiligne EmptyMar 10 Mai 2022 - 12:35

Bonjour à tous !

Voici un nouvel exemple de création de potentiomètres.
Le design moderne est emprunté à Microsoft Windows 10.

Le code-source est commenté.
Pour cet exemple, j'ai pris un débattement des curseurs de 360 pixels.

Exemple de potentiomètre rectiligne Potent13

Code:
' Exemple de 3 potentiomètres horizontaux
' Marc - Mai 2022
' Ecrit en langage Panoramic

dim null%, xSouris%, p1%,p2%,p3%

label reglageP1, reglageP2, reglageP3

interfaceUtilisateur()

end
' ------------------------------------------------------------------------------
sub interfaceUtilisateur()
    width 0,width(0) - width_client(0) + 540
    height 0,height(0) - height_client(0) + 240
    left 0,(screen_x - width(0)) / 2
    top 0,(screen_y - height(0)) / 2
    color 0,255,255,255
    caption 0,"PANORAMIC Exemple de trois potentiomètres horizontaux"

    ' PICTURE non visible servant de planche à dessins
    create_hide
    picture 1
    create_show
    
    ' zones mémoire pour stocker les dessins
    image 2
    image 3

    dessinerModelePotentiometre()

    ' creerPotentiometre(numméro d'objet,coordonnée en x, coordonnée en y)
    creerPotentiometre(30,50,50)
    creerPotentiometre(35,50,100)
    creerPotentiometre(40,50,150)
    
    ' creer affichage de la position des curseurs des potentiomètres
    alpha 45
    top 45,55
    left 45,450
    font_size 45,18
    caption 45,"0"
    
    alpha 46
    top 46,105
    left 46,450
    font_size 46,18
    caption 46,"0"
    
    alpha 47
    top 47,155
    left 47,450
    font_size 47,18
    caption 47,"0"

    on_mouse_down 30,reglageP1    
    on_mouse_down 35,reglageP2    
    on_mouse_down 40,reglageP3    
end_sub
' ------------------------------------------------------------------------------
sub dessinerModelePotentiometre()
    2d_target_is 1

    ' dessiner le décor de fond du potentiomètre
    width 1,368
    height 1,44
    color 1,255,255,255
    2d_pen_color 153,153,153
    2d_rectangle 0,21,368,23
  
    ' copie du dessin effectué (décor de fond) en mémoire dans l'objet IMAGE 2
    2d_image_copy 2,0,0,368,44

    ' dessiner le bouton du potentiomètre
    color 1,0,0,0 :' effacer planche à dessin (picture 1)
    2d_pen_color 0,120,215
    2d_fill_color 0,120,215
    2d_rectangle 0,21,368,23
    2d_rectangle 361,11,367,33
    2d_line 362,10,366,10
    2d_line 360,12,360,32
    2d_line 367,12,367,32
    2d_line 362,33,366,33

    ' copie du dessin effectué (bouton) en mémoire dans l'objet IMAGE 3
    2d_image_copy 3,0,0,368,44
end_sub
' ------------------------------------------------------------------------------
sub creerPotentiometre(n%,x%,y%)
    ' Corps du potentiomètre
    scene2d n%
    top n%,y%
    left n%,x%
    width n%,368
    height n%,44
    sprite_target_is n%

    sprite_create_hide

    ' creer sprite servant d'image de fond et copier le dessin dessus
    sprite n%
    sprite_image_load n%,2
    sprite_position n%,0,0
 
    ' creer le sprite du bouton et copier le dessin dessus
    sprite n%+1
    sprite_image_load n%+1,3
    sprite_position n%+1,-360,0

    sprite_show n%
    sprite_show n%+1
end_sub
' ------------------------------------------------------------------------------
reglageP1:
    off_mouse_down 30
    ' inhibition bouton droit souris
    if mouse_right_down(30)=1
        on_mouse_down 30,reglageP1    
        return
    end_if

    ' raffraichissement de l'état des boutons de la souris
    null% = mouse_left_up(30)
    null% = mouse_left_down(30)

    while mouse_left_up(30) = 0 :' Tant que le bouton gauche de la souris est enfoncé            
        xSouris% = mouse_x_position(30) - 364
        if xSouris% < -360 :' limite gauche
            sprite_x_position 31,-360
        end_if
        if xSouris% > 0
            sprite_x_position 31,0 :' limite droite
        end_if
        if xSouris% > -360 and xSouris% < 0
            sprite_x_position 31,xSouris%
        end_if
        p1% = sprite_x_position(31) + 360
        caption 45,p1%
    end_while

    on_mouse_down 30,reglageP1    
return
' ------------------------------------------------------------------------------
reglageP2:
    off_mouse_down 35
    ' inhibition bouton droit souris
    if mouse_right_down(35)=1
        on_mouse_down 35,reglageP2    
        return
    end_if

    ' raffraichissement de l'état des boutons de la souris
    null% = mouse_left_up(35)
    null% = mouse_left_down(35)

    while mouse_left_up(35) = 0 :' Tant que le bouton gauche de la souris est enfoncé            
        xSouris% = mouse_x_position(35) - 364
        if xSouris% < -360 :' limite gauche
            sprite_x_position 36,-360
        end_if
        if xSouris% > 0
            sprite_x_position 36,0 :' limite droite
        end_if
        if xSouris% > -360 and xSouris% < 0
            sprite_x_position 36,xSouris%
        end_if
        p2% = sprite_x_position(36) + 360
        caption 46,p2%
    end_while

    on_mouse_down 35,reglageP2    
return
' ------------------------------------------------------------------------------
reglageP3:
    off_mouse_down 40
    ' inhibition bouton droit souris
    if mouse_right_down(40)=1
        on_mouse_down 40,reglageP3    
        return
    end_if

    ' raffraichissement de l'état des boutons de la souris
    null% = mouse_left_up(40)
    null% = mouse_left_down(40)

    while mouse_left_up(40) = 0 :' Tant que le bouton gauche de la souris est enfoncé            
        xSouris% = mouse_x_position(40) - 364
        if xSouris% < -360 :' limite gauche
            sprite_x_position 41,-360
        end_if
        if xSouris% > 0
            sprite_x_position 41,0 :' limite droite
        end_if
        if xSouris% > -360 and xSouris% < 0
            sprite_x_position 41,xSouris%
        end_if
        p3% = sprite_x_position(41) + 360
        caption 47,p3%
    end_while

    on_mouse_down 40,reglageP3    
return
' ------------------------------------------------------------------------------

Bonne programmation à tous !

Edit du 16/05/2022
J'ai rectifié deux petites erreurs : pour les potentiomètres 2 et 3, la butée inférieure était décalée de 5 pixels.
Le code-source a été rectifié.

Revenir en haut Aller en bas
Contenu sponsorisé





Exemple de potentiomètre rectiligne Empty
MessageSujet: Re: Exemple de potentiomètre rectiligne   Exemple de potentiomètre rectiligne Empty

Revenir en haut Aller en bas
 
Exemple de potentiomètre rectiligne
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» potentiomètre de volume
» Clipboard
» Exemple d'une nouvelle version d'un GRID
» Exemple de gestion des onglets en Panoramic pur
» Exemple de dessin dans un picture chargé

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: