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.
Comment construire un bouton avec un picture Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Comment construire un bouton avec un picture Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Comment construire un bouton avec un picture Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Comment construire un bouton avec un picture Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Comment construire un bouton avec un picture Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Comment construire un bouton avec un picture Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Comment construire un bouton avec un picture Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Comment construire un bouton avec un picture Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Comment construire un bouton avec un picture Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Comment construire un bouton avec un picture Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Comment construire un bouton avec un picture Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Comment construire un bouton avec un picture Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Comment construire un bouton avec un picture Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Comment construire un bouton avec un picture Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Comment construire un bouton avec un picture 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
Le deal à ne pas rater :
Code promo Nike : -25% dès 50€ d’achats sur tout le site Nike
Voir le deal

 

 Comment construire un bouton avec un picture

Aller en bas 
2 participants
AuteurMessage
Klaus

Klaus


Nombre de messages : 12331
Age : 75
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 : 52
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: