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
» SineCube
Comment construire un bouton avec un picture Emptypar Marc Hier à 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Comment construire un bouton avec un picture Emptypar Marc Hier à 12:22

» Philharmusique
Comment construire un bouton avec un picture Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Comment construire un bouton avec un picture Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Comment construire un bouton avec un picture Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Comment construire un bouton avec un picture Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Comment construire un bouton avec un picture Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Comment construire un bouton avec un picture Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Comment construire un bouton avec un picture Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
Comment construire un bouton avec un picture Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Comment construire un bouton avec un picture Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Comment construire un bouton avec un picture Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
Comment construire un bouton avec un picture Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
Comment construire un bouton avec un picture Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Comment construire un bouton avec un picture Emptypar leclode Sam 27 Avr 2024 - 17:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment : -45%
WHIRLPOOL OWFC3C26X – Lave-vaisselle pose libre ...
Voir le deal
339 €

 

 Comment construire un bouton avec un picture

Aller en bas 
2 participants
AuteurMessage
Klaus

Klaus


Nombre de messages : 12295
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 : 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
» déplacer des picture avec la souris
» Comment faire un picture de n'importe quelle forme ?
» Bizarrerie avec picture
» PICTURE avec barres de défilement...

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: