CreateButtonColor 2

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Shadow
Messages : 1413
Inscription : mer. 04/nov./2015 17:39

CreateButtonColor 2

Message 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
Dernière modification par Shadow le jeu. 27/avr./2017 20:24, modifié 7 fois.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Shadow
Messages : 1413
Inscription : mer. 04/nov./2015 17:39

Re: CreateButtonColor 2

Message 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...
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Shadow
Messages : 1413
Inscription : mer. 04/nov./2015 17:39

Re: CreateButtonColor 2

Message par Shadow »

Grosse Mise à jour.

Pas mal de changement en interne, modifications, optimisations, ajouts.
Voir Premier Post.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Tonio
Messages : 95
Inscription : ven. 07/avr./2017 14:49
Localisation : Sud Est

Re: CreateButtonColor 2

Message par Tonio »

Bonjour

Un grand merci pour ce partage j'ai beaucoup aimé ce logiciel
Shadow
Messages : 1413
Inscription : mer. 04/nov./2015 17:39

Re: CreateButtonColor 2

Message 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 :)
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Shadow
Messages : 1413
Inscription : mer. 04/nov./2015 17:39

Re: CreateButtonColor 2

Message 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 :)
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Shadow
Messages : 1413
Inscription : mer. 04/nov./2015 17:39

Re: CreateButtonColor 2

Message 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.
Dernière modification par Shadow le mar. 18/avr./2017 0:18, modifié 2 fois.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
Noos88
Messages : 59
Inscription : lun. 14/juin/2010 19:16
Localisation : Belrupt (Vosges)

Re: CreateButtonColor 2

Message 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é
Shadow
Messages : 1413
Inscription : mer. 04/nov./2015 17:39

Re: CreateButtonColor 2

Message 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.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: CreateButtonColor 2

Message 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 !
Shadow
Messages : 1413
Inscription : mer. 04/nov./2015 17:39

Re: CreateButtonColor 2

Message 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 !
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: CreateButtonColor 2

Message 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

~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Shadow
Messages : 1413
Inscription : mer. 04/nov./2015 17:39

Re: CreateButtonColor 2

Message 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.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Shadow
Messages : 1413
Inscription : mer. 04/nov./2015 17:39

Re: CreateButtonColor 2

Message 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.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: CreateButtonColor 2

Message 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 ?
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Répondre