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
» Une calculatrice en une ligne de programme
Comment construire un bouton avec un picture Emptypar jean_debord Aujourd'hui à 8:47

» Form(résolu)
Comment construire un bouton avec un picture Emptypar leclode Hier à 17:59

» trop de fichiers en cours
Comment construire un bouton avec un picture Emptypar Marc Hier à 11:42

» Bataille navale SM
Comment construire un bouton avec un picture Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Gestion d'un système client-serveur.
Comment construire un bouton avec un picture Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
Comment construire un bouton avec un picture Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Comment construire un bouton avec un picture Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Comment construire un bouton avec un picture Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
Comment construire un bouton avec un picture Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Comment construire un bouton avec un picture Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Comment construire un bouton avec un picture Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
Comment construire un bouton avec un picture Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Comment construire un bouton avec un picture Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
Comment construire un bouton avec un picture Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Comment construire un bouton avec un picture Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
-39%
Le deal à ne pas rater :
Ordinateur portable ASUS Chromebook Vibe CX34 Flip
399 € 649 €
Voir le deal

 

 Comment construire un bouton avec un picture

Aller en bas 
2 participants
AuteurMessage
Klaus

Klaus


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

Comment construire un bouton avec un picture Empty
MessageSujet: Comment construire un bouton avec un picture   Comment construire un bouton avec un picture EmptyMer 20 Nov 2013 - 2:17

Sur mon système, sous XP pro SP3, les boutons de Panoramic ne me plaisent pas vraiment. Ils ont une forme de rectangle arrondi comme ceci:
Comment construire un bouton avec un picture Aa119

Pour ma part, je préfère les boutons avec un rectangle franc, en relief, comme ceux des barres d'outils. J'ai donc trouvé un moyen de dessiner ces images dans un picture caché, de les mettre de côté dans des images, puis de les charger dans les picture servant de bouton.

Il faut bien sûr avoir 2 images par bouton: bouton sorti et bouton enfoncé. Pour ne pas avoir à faire une image par bouton, j'écris le libellé du bouton au centre du bouton, après chaque changement d'état. Et parlons-en: le changement d'état se fait par le remplacement de l'image du bouton sorti par l'image du bouton enfoncé, puis une attente de 150 millisecondes, puis remise de l'image du bouton sorti.

Tout cela donne une assez bonne simulation d'un bouton texte, et c'est paramétré pour n'importe quelle largeur et hauteur. Les images des boutons se dessinent par des fonctions 2d_xxx, et on n'a pas besoin de fichiers bmp ou jpg.

Voici l'image obtenu, par l'exemple d'une calculette simple:
Comment construire un bouton avec un picture Aa211

Et voici le code, utilisant KGF_OBJ.bas:
Code:
' calculette.bas

label click
dim button_out%, button_in%, boutons%(15)
dim n%, r%, g%, b%, s$, affichage%, sauve$, oper%, nouveau%
sauve$ = "0" : nouveau% = 1

height 0,560 : width 0,430

creer_images()

xPicture(110,10,100,100,0) : boutons%(1) = no% : charger_image(no%,button_out%)
  couleur_remplissage(no%)
  on_click no%,click : afficher_libelle(no%,"1")
xPicture(110,110,100,100,0) : boutons%(2) = no% : charger_image(no%,button_out%)
  couleur_remplissage(no%)
  on_click no%,click : afficher_libelle(no%,"2")
xPicture(110,210,100,100,0) : boutons%(3) = no% : charger_image(no%,button_out%)
  couleur_remplissage(no%)
  on_click no%,click : afficher_libelle(no%,"3")

xPicture(210,10,100,100,0) : boutons%(4) = no% : charger_image(no%,button_out%)
  couleur_remplissage(no%)
  on_click no%,click : afficher_libelle(no%,"4")
xPicture(210,110,100,100,0) : boutons%(5) = no% : charger_image(no%,button_out%)
  couleur_remplissage(no%)
  on_click no%,click : afficher_libelle(no%,"5")
xPicture(210,210,100,100,0) : boutons%(6) = no% : charger_image(no%,button_out%)
  couleur_remplissage(no%)
  on_click no%,click : afficher_libelle(no%,"6")

xPicture(310,10,100,100,0) : boutons%(7) = no% : charger_image(no%,button_out%)
  couleur_remplissage(no%)
  on_click no%,click : afficher_libelle(no%,"7")
xPicture(310,110,100,100,0) : boutons%(8) = no% : charger_image(no%,button_out%)
  couleur_remplissage(no%)
  on_click no%,click : afficher_libelle(no%,"8")
xPicture(310,210,100,100,0) : boutons%(9) = no% : charger_image(no%,button_out%)
  couleur_remplissage(no%)
  on_click no%,click : afficher_libelle(no%,"9")

xPicture(410,10,100,100,0) : boutons%(10) = no% : charger_image(no%,button_out%)
  couleur_remplissage(no%)
  on_click no%,click : afficher_libelle(no%,"C")
xPicture(410,110,100,100,0) : boutons%(0) = no% : charger_image(no%,button_out%)
  couleur_remplissage(no%)
  on_click no%,click : afficher_libelle(no%,"0")
xPicture(410,210,100,100,0) : boutons%(11) = no% : charger_image(no%,button_out%)
  couleur_remplissage(no%)
  on_click no%,click : afficher_libelle(no%,",")

xPicture(110,310,100,100,0) : boutons%(12) = no% : charger_image(no%,button_out%)
  couleur_remplissage(no%)
  s$ = "+ ="
  on_click no%,click : afficher_libelle(no%,s$)
xPicture(210,310,100,100,0) : boutons%(13) = no% : charger_image(no%,button_out%)
  couleur_remplissage(no%)
  on_click no%,click : afficher_libelle(no%,"-")
xPicture(310,310,100,100,0) : boutons%(14) = no% : charger_image(no%,button_out%)
  couleur_remplissage(no%)
  on_click no%,click : afficher_libelle(no%,"*")
xPicture(410,310,100,100,0) : boutons%(15) = no% : charger_image(no%,button_out%)
  couleur_remplissage(no%)
  on_click no%,click : afficher_libelle(no%,"/")


xEdit(30,10,400,0,1) : affichage% = no% : font_size no%,16 : font_bold no%
  text no%,"0"

end

' ************** construire les images des boutons
sub creer_images()
  xPicture(10,10,100,100,0) : hide no%
  dessiner_out(no%) : sauver_image(no%) : button_out% = no%
  xPicture(10,300,100,100,0) : hide no%
  dessiner_in(no%) : sauver_image(no%) : button_in% = no%
end_sub

' ************** construire l'image du bouton sorti
sub dessiner_out(n%)
  dim_local w%,h%
  w% = width(n%) : h% = height(n%)
  2d_target_is n%
  ' rectangle extérieur
  2d_fill_color 236,233,216
  2d_pen_color 0,0,0
  2d_rectangle 0,0,w%,h%
  display
  ' intérieur bas/droite -1
  2d_pen_color 113,110,103
  2d_poly_from 1,h%-2
  2d_poly_to w%-2,h%-2
  2d_poly_to w%-2,1
  display
  ' intérieur bas/droite -2
  2d_pen_color 169,165,154
  2d_poly_from 2,h%-3
  2d_poly_to w%-3,h%-3
  2d_poly_to w%-3,2
  display
  ' intérieur gauche/haut -1
  2d_pen_color 255,255,245
  2d_poly_from 1,h%-3
  2d_poly_to 1,1
  2d_poly_to w%-3,1
  display
  ' intérieur gauche/haut -2
  2d_pen_color 241,239,216
  2d_poly_from 2,h%-4
  2d_poly_to 2,2
  2d_poly_to w%-4,2
  display
end_sub

' ************** construire l'image du bouton enfoncé
sub dessiner_in(n%)
  dim_local w%,h%
  w% = width(n%) : h% = height(n%)
  2d_target_is n%
  ' rectangle extérieur
  2d_fill_color 236,233,216
  2d_pen_color 0,0,0
  2d_rectangle 0,0,w%,h%
  display
  ' rectangle intérieur
  2d_pen_color 170,167,158
  2d_rectangle 1,1,w%-1,h%-1
  display
end_sub

' ************** sauver l'image du bouton
sub sauver_image(n%)
  xImage()
  2d_target_is n%
  2d_image_copy no%,0,0,width(n%),height(n%)
end_sub

' ************** charger l'image i% dans le bouton n%
sub charger_image(n%,i%)
  2d_target_is n%
  2d_image_paste i%,0,0
end_sub

' ************** afficher ke libellé des boutons
sub afficher_libelle(n%,c$)
  font_size n%,24 : font_bold n%
  print_target_is n%
  print_x_locate (width(n%)-text_width(c$,n%))/2
  print_y_locate (height(n%)-text_height(c$,n%))/2
  print c$
end_sub

' ************** pour un fond transparent pour 2d_print
sub couleur_remplissage(n%)
  r% = color_pixel_red(no%,50,50)
  g% = color_pixel_green(no%,50,50)
  b% = color_pixel_blue(no%,50,50)
  2d_fill_color r%,g%,b%
end_sub

' ************** exécuter une des opérations
sub executer_operation()
  if nouveau%=1 then exit_sub
  if oper%=1 then text affichage%,str$(val(sauve$)+val(text$(affichage%)))
  if oper%=2 then text affichage%,str$(val(sauve$)-val(text$(affichage%)))
  if oper%=3 then text affichage%,str$(val(sauve$)*val(text$(affichage%)))
  if oper%=4 then text affichage%,str$(val(sauve$)/val(text$(affichage%)))
  nouveau% = 1
  oper% = 0
end_sub


' ************** clic sur un bouton
click:
  2d_target_is number_click
  2d_image_paste button_in%,0,0
  display
  pause 150
  2d_image_paste button_out%,0,0
  for n%=0 to 15
    if boutons%(n%)=number_click
      if n%<10
        if nouveau%=1
          sauve$ = text$(affichage%)
          text affichage%,"0"
          nouveau% = 0
        end_if
        text affichage%,str$(val(text$(affichage%) + str$(n%)))
        afficher_libelle(number_click,str$(n%))
        return
      end_if
      if n%=10
        if text$(affichage%)="0"
          sauve$ = "0"
          oper% = 0
        end_if
        text affichage%,"0"
        afficher_libelle(number_click,"C")
        return
      end_if
      if n%=11
        if nouveau%=1
          sauve$ = text$(affichage%)
          text affichage%,"0"
          nouveau% = 0
        end_if
        text affichage%,text$(affichage%) + "."
        afficher_libelle(number_click,",")
        return
      end_if
      if n%=12
        executer_operation()
        oper% = 1
        s$ = "+ ="
        afficher_libelle(number_click,s$)
        return
      end_if
      if n%=13
        executer_operation()
        oper% = 2
        afficher_libelle(number_click,"-")
        return
      end_if
      if n%=14
        executer_operation()
        oper% = 3
        afficher_libelle(number_click,"*")
        return
      end_if
      if n%=15
        executer_operation()
        oper% = 4
        afficher_libelle(number_click,"/")
        return
      end_if
    end_if
  next n%
  return


#INCLUDE "KGF_OBJ.bas"
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Comment construire un bouton avec un picture Empty
MessageSujet: Re: Comment construire un bouton avec un picture   Comment construire un bouton avec un picture EmptyMer 20 Nov 2013 - 9:29

Merci Klaus
Revenir en haut Aller en bas
 
Comment construire un bouton avec un picture
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» déplacer des picture avec la souris
» Comment savoir quel picture a été cliqué?
» Comment faire un picture de n'importe quelle forme ?
» Bizarrerie avec picture
» déplacer des picture avec la souris

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: