Page 1 sur 4

CreateButtonColor 2

Publié : dim. 02/avr./2017 2:13
par Shadow
Salut,

Voici un Bouton entièrement personnalisable.
Voir le fichier Aide pour plus amples détails.

Bouton MultiLigne Possible !

Et une ch'tite image, c'est mieux qu'un long discourt:
Image

Code bien trop long pour mettre ici !
Lien de l'archive: http://www.aht.li/3050376/CreateButtonColor_2.7z

Re: CreateButtonColor 2

Publié : dim. 02/avr./2017 13:03
par Shadow
Petites correction dans la procédure: IsMouseOverGadget pour que ce soit MultiplateForme, merci à Micoute.
Correction d'orthographe, merci à Micoute.

Ajout: RedrawButtonColor(Gadget.i) pour évité de redessiné à chaque fois le Bouton l'or d'une Fonction SetButtonColorXxx.
Cette Fonction est à placer après les modifications apportés au Bouton.

Édit, mise a jour Importante à venir...

Re: CreateButtonColor 2

Publié : ven. 07/avr./2017 15:26
par Shadow
Grosse Mise à jour.

Pas mal de changement en interne, modifications, optimisations, ajouts.
Voir Premier Post.

Re: CreateButtonColor 2

Publié : ven. 07/avr./2017 17:06
par Tonio
Bonjour

Un grand merci pour ce partage j'ai beaucoup aimé ce logiciel

Re: CreateButtonColor 2

Publié : ven. 07/avr./2017 18:23
par Shadow
Bonjour Tonio,
Je t'en pris merci à toi :)

Je pense faire une aide sur le bouton mais j'aimerais
avoir des retour aussi savoir si tous va bien :)

Re: CreateButtonColor 2

Publié : ven. 14/avr./2017 10:37
par Shadow
J'ai créé une aide pour cette bibliothèque de fonction (Voir premier message).
Hésitez pas à données vos avis et critique, si vous avez des demandes également :)

Re: CreateButtonColor 2

Publié : lun. 17/avr./2017 17:58
par Shadow
Mise à Jour, voir Premier Post.

Version 1.12:

Ajouté: Fonction ButtonColorSendCommand() pour envoyer une commande personnalisé à un Bouton.

Ajouté: Constante #BC_ButtonColorDisableEventAutoDisplay pour SetButtonColorAttribute() et GetButtonColorAttribute().
Pour Active ou Désactive l'auto gestion de l'affichage du Bouton au clique de la Souris.

Ajouté: Constante #BC_ButtonColorMasterSlave pour SetButtonColorAttribute() et GetButtonColorAttribute().
Pour Forcer un Bouton à devenir l'Esclave d'un autre Bouton.

Ajouté: Exemple N°7 pour voir en Action la nouvelle Constante #BC_ButtonColorDisableEventAutoDisplay.
Ajouté: Exemple N°8 pour voir en Action la Fonction ButtonColorSendCommand().
Ajouté: Exemple N°9 pour voir en Action la Fonction GetButtonColorImageID().

Modification: Exemple N°6 pour voir en Action la nouvelle Constante #BC_ButtonColorMasterSlave.
Modification: Modifié très légèrement le Style du Bouton "Défaut" pour le rendre plus réaliste.

Modification: Modifié la Fonction GetButtonColorImageID() qui renverra maintenant le Numéro ID de l'image du Bouton.
Maintenant seul le paramètre Gadget.i est requit (Suppression du paramètre "État.i").

Corrigé: Erreurs diverses dans le Code.

Re: CreateButtonColor 2

Publié : lun. 17/avr./2017 21:50
par Noos88
Merci et très bon boulot,
j'ai déjà intégré tes boutons sur un de mes logiciel ça rend supère bien.

Je t'encourage car ça manque beaucoup la personnalisation "facile" des fenêtre dans PureBasic.
Il ne manque juste les fenetres, panel, etc... :D :D
Bonne soiré

Re: CreateButtonColor 2

Publié : mar. 18/avr./2017 0:13
par Shadow
Noos88, je 't’en pris :)
Si on s'est s'en servir, ont peut faire pas mal de choses sympathique en effet avec :)

La bibliothèque évolue gentiment :)
Si tu as des suggestion, critiques même constructive, hésite pas.

Un bouton, ça demande déjà beaucoup de travail pour rendre tous ça aussi
réaliste qu'un vraie, se qui est strictement le cas pour le comportement.

C'est pas du Pro mais déjà c'est largement fonctionnel et on peu en faire
des choses avec et c'est pas fini je pense.

A bientôt.

Re: CreateButtonColor 2

Publié : mar. 18/avr./2017 8:40
par Zorro
Noos88 a écrit :Je t'encourage car ça manque beaucoup la personnalisation "facile" des fenêtre dans PureBasic.
je ne sais pas ce que tu entends par personnalisation "facile" des fenêtre
mais une petite recherche sur le forum te rendrai quand meme pas mal de code !

Re: CreateButtonColor 2

Publié : mar. 18/avr./2017 16:52
par Shadow
Mise à Jour, voir Premier Post.

Version 1.13:

Ajouté: Constante #BC_ButtonColorGroup pour SetButtonColorAttribute() et GetButtonColorAttribute().
Pour intégrer le Bouton à un Groupe, utile seulement si le Bouton a le Mode Toogle (Interrupteur) d'activé (Sur 1 ou #True).
Ainsi, seule un seul des Boutons du Groupe pourra être Activé (État Interrupteur sur 1 ou #True).
Voir exemple N°10 qui illustre bien ces propos.

Ajouté: Exemple N°10 pour voir en Action la nouvelle Constante #BC_ButtonColorGroup.

Modification: La Fonction RedrawButtonColor() n'est plus utile pour redessiner le Bouton
après une quelconque modification de celui-ci, désormais elle est Automatique !

Re: CreateButtonColor 2

Publié : mar. 18/avr./2017 16:58
par Ar-S
Je suis content que ton code serve.
Je serai toi, je créerai un générateur de bouton.
ça ce serai vraiment utile. Un code trop long est moins facilement exploitable qu'un soft qui va générer un bouton selon des options.

J'en ai esquissé un vite fait. C'est pour l'exemple.

Code : Tout sélectionner

; Canvas button créator exemple.
; Ar-S : PB 5.60 x64

Declare.s Generate()
Declare exit()
Declare Owin()

Enumeration
  #Win
  #Panel
  ; textes
  #T_Button_L
  #T_Button_H
  #T_Button_X
  #T_Button_Y
  #T_Button_ID
  #T_Button_Text
  ; strings
  #BT_X
  #BT_Y
  #BT_L
  #BT_H
  #BT_TXT
  #BT_ID
  
  #GENERATE
  #CANVAS
EndEnumeration

Procedure exit()
  End
EndProcedure

Procedure.s Generate()
  IDbt.s = GetGadgetText(#BT_ID)
  Xbt.s = GetGadgetText(#BT_X)
  Ybt.s = GetGadgetText(#BT_Y)
  Lbt.s = GetGadgetText(#BT_L)
  Hbt.s = GetGadgetText(#BT_H)
  Nbt.s = GetGadgetText(#BT_TXT)
  
  Code.s = "CanvasGadget("+IDbt+", " + Xbt + ", "+ Ybt+ ", " + Lbt+", "+Hbt+")"
  ;exemple
  MessageRequester("test","Code du bouton"+Chr(10)+Code)
  ProcedureReturn Code.s
EndProcedure


Procedure Owin()
  
  OpenWindow(#win,#PB_Ignore,#PB_Ignore,800,600,"",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
  PanelGadget(#Panel,1,1,798,598)
  AddGadgetItem(#Panel, -1, "Edition")
  
  TextGadget(#T_Button_X,   5, 10, 145, 20, "Position X dans fenêtre :", #SS_CENTERIMAGE)
  TextGadget(#T_Button_Y,   5, 35, 145, 20, "Position Y dans fenêtre :", #SS_CENTERIMAGE)
  TextGadget(#T_Button_L,   5, 60, 145, 20, "Largeur du bouton :", #SS_CENTERIMAGE)
  TextGadget(#T_Button_H,   5, 85, 145, 20, "Hauteur du bouton :", #SS_CENTERIMAGE)
  TextGadget(#T_Button_ID,  5, 110, 145, 20, "ID du bouton : ", #SS_CENTERIMAGE)
  TextGadget(#T_Button_Text,5, 135, 145, 20, "Texte du bouton :", #SS_CENTERIMAGE)
  
  StringGadget(#BT_X,   153, 13, 45, 20,  "0", #PB_String_Numeric)
  StringGadget(#BT_Y,   153, 38, 45, 20,  "0", #PB_String_Numeric)
  StringGadget(#BT_L,   153, 63, 45, 20,  "", #PB_String_Numeric)
  StringGadget(#BT_H,   153, 88, 45, 20,  "", #PB_String_Numeric)
  StringGadget(#BT_TXT, 153, 138, 151, 20, "Je suis un bouton", #PB_String_Numeric)
  StringGadget(#BT_ID,  153, 113, 70, 20, "#Button_01")
  
  ButtonGadget(#GENERATE, 5,200,250,50,"Générer")
  CanvasGadget(#CANVAS,0,260,100,50)
  
  
  AddGadgetItem (#Panel, -1, "Code généré")

  BindEvent(#PB_Event_CloseWindow, @Exit() )
  
EndProcedure


Owin()

Repeat 
  WaitWindowEvent() 
  If Event() = #PB_Event_Gadget And EventGadget() = #GENERATE
    Generate()  
  EndIf

  
ForEver


Re: CreateButtonColor 2

Publié : mar. 18/avr./2017 21:48
par Shadow
Salut Ar'S, ce serra le même problème je pense.
Je ne pense pas que se soit explorable ainsi.

Mon Bouton est tous de même bardé de ligne de code pour son bon
Fonctionnement, je sais que c'est pas forcément super optimisé mais bon...

Non, se serrais de la folie au vue du code à généré et strictement inutile dans mon cas à moi.
Maintenant je compte bientôt faire un générateur de Bouton qui utilisera ma bibliothèque
pour facilité la création du Bouton voulue.

Re: CreateButtonColor 2

Publié : mar. 18/avr./2017 23:00
par Shadow
Mise à Jour, voir Premier Post.

Version 1.14 Retaille 1:

Modification: La Fonction RedrawButtonColor() est redevenu indispensable pour redessiner le Bouton
après les Modifications, car L'automatisation de cette fonction fessais clignoté les Boutons en court de Modification.

En effet, la Fonction était appelé après chaque Modification sur le Bouton se qui engendrait de Multiples clignotements.
Ainsi, plus il y avait de modification à la suite sur le Bouton et plus nombreux était les clignotements sur celui-ci.

Re: CreateButtonColor 2

Publié : mer. 19/avr./2017 7:08
par Micoute
Shadow a écrit :Salut Ar'S, ce serra le même problème je pense.
Je ne pense pas que se soit explorable ainsi.

Mon Bouton est tous de même bardé de ligne de code pour son bon
Fonctionnement, je sais que c'est pas forcément super optimisé mais bon...

Non, se serrais de la folie au vue du code à généré et strictement inutile dans mon cas à moi.
Maintenant je compte bientôt faire un générateur de Bouton qui utilisera ma bibliothèque
pour facilité la création du Bouton voulue.
Elle sert à quoi ta fameuse librairie de fonctions si on ne peut pas créer de programme avec ?