Page 1 sur 1

Demande Conseil, création bouton Style RTF

Publié : mer. 22/mars/2017 13:23
par Shadow
Salut,

J'aimerais créer un bouton Style RTF, je ne sais pas si c'est le terme qui convient le mieux.

Un bouton ou je peut choisir le Texte, la Couleur du Texte, la Couleur du Font du Texte, le Style du Texte, la Police du Texte
Quand je dis du texte, attention, je parle de texte multiple sur un bouton, Ex: Ceci est un bouton RTF
ou ici chaque texte (mot) aurais c'est propres paramètres, genre RTF quoi.

Je vais utiliser un bouton image, je vais créer l'image du texte puis le mettre sur le bouton.
Je demande conseil pour savoir quel genre de syntaxe utiliser pour les fonction pour faire ça
Un genre comme ceci ?:

Ici j’ajoute les texte au bouton:

Code : Tout sélectionner

AddButtonTextColor(Gadget.i, "Ceci", CouleurTexte.i, CouleurFontTexte.i, StyleTexte.i, PoliceTexte.s, TaillePoliceTexte.s)
AddButtonTextColor(Gadget.i, "est", CouleurTexte.i, CouleurFontTexte.i, StyleTexte.i, PoliceTexte.s, TaillePoliceTexte.s)
AddButtonTextColor(Gadget.i, "un", CouleurTexte.i, CouleurFontTexte.i, StyleTexte.i, PoliceTexte.s, TaillePoliceTexte.s)
AddButtonTextColor(Gadget.i, "bouton", CouleurTexte.i, CouleurFontTexte.i, StyleTexte.i, PoliceTexte.s, TaillePoliceTexte.s)
AddButtonTextColor(Gadget.i, "RTF", CouleurTexte.i, CouleurFontTexte.i, StyleTexte.i, PoliceTexte.s, TaillePoliceTexte.s)
Et ici j’applique l'image au bouton:

Code : Tout sélectionner

SetButtonTextColor(Gadget.i)
Ou alors avec une fonction unique, se qui risque de compliquer la chose:

Code : Tout sélectionner

SetButtonTextColor(Gadget.i, CodeBouton.s)
Code bouton aurait le code pour paramétrer les textes du bouton du style (Perso je pense pas que ce soit la meilleurs façon ainsi):

Code : Tout sélectionner

CodeBouton.s = "Ceci, Rouge, Vert, Bleu, Rouge, Vert, Bleu, #PB_Font_Bold, "Arial", 25"

Re: Demande Conseil, création bouton Style RTF

Publié : mer. 22/mars/2017 14:04
par falsam
A mon avis tu vas trouver ton bonheur sur le forum. Le sujet a souvent été abordé.

Pour un bouton personnalisé la solution est le canvas gadget.

Un exemple https://github.com/pbcodex/Canvas-Butto ... master.zip

Re: Demande Conseil, création bouton Style RTF

Publié : mer. 22/mars/2017 14:15
par Ar-S
+1 pour le canvas.. La meilleure solution pour du beau bouton graphique.
Il réunit tout ce qu'il faut.. La facilité de gestion des images et les events très complets.
Tu peux même t'amuser avec les nouvelles commandes AddImageFrame() etc pour faire du bouton animé.

Re: Demande Conseil, création bouton Style RTF

Publié : mer. 22/mars/2017 14:30
par Shadow
Oui merci mais je ne cherche pas à recréer un bouton là.
Et de toute façon même si c’était le cas, la question resterait la même !

Que je créer ou pas un bouton avec un Canvas il faudra bien que
j'utilise la syntaxe la mieux possible donc la question este entière :)

Re: Demande Conseil, création bouton Style RTF

Publié : mer. 22/mars/2017 14:59
par Ar-S
As tu regardé le lien que Falsam t'a donné ?

Re: Demande Conseil, création bouton Style RTF

Publié : mer. 22/mars/2017 15:22
par Shadow
Oui !

Re: Demande Conseil, création bouton Style RTF

Publié : mer. 22/mars/2017 15:32
par Ar-S
J'aimerais créer un bouton
=>
Oui merci mais je ne cherche pas à recréer un bouton là.
C'est ce genre de contradiction qui rend dingue.
Je vais utiliser un bouton image, je vais créer l'image du texte puis le mettre sur le bouton.
Je demande conseil pour savoir quel genre de syntaxe utiliser pour les fonction pour faire ça
Tu as exactement ce qu'il te faut dans l'exemple du CanvasButtonGadget sauf qu'au lieu d'utiliser des includebinary, tu crées tes images comme tu le souhaites.

Donc CreateImage(), Box(), DrawText() (la bibliothèque 2DDrawing) seront les principaux outils dont tu auras besoin. Ensuite le code CanvasButtonGadget() devrait te suffire ou du moins tu n'auras pas à modifier grand chose dedans..

Re: Demande Conseil, création bouton Style RTF

Publié : mer. 22/mars/2017 15:38
par Shadow
J'ai dis:
J'aimerais créer un bouton Style RTF
Je crois que je me suis pas fait comprendre.
Pas grave merci quand même.

PS: après une fois fait on me dire que mon code est nul
alors que j'ai demander comment procéder et que ont ne m'as pas dis.

Je vais essayer de faire comme je peux.

Re: Demande Conseil, création bouton Style RTF

Publié : mer. 22/mars/2017 15:47
par Mindphazer
Shadow a écrit : Je crois que je me suis pas fait comprendre.
Comme d'hab
Shadow a écrit : PS: après une fois fait on me dire que mon code est nul
alors que j'ai demander comment procéder et que ont ne m'as pas dis.
Tu t'es relu ???

Re: Demande Conseil, création bouton Style RTF

Publié : mer. 22/mars/2017 16:25
par SPH
Modéré par Ar-S : On s'en fout..

Re: Demande Conseil, création bouton Style RTF

Publié : mer. 22/mars/2017 16:37
par Ar-S
Primo un bouton RTF ça ne veut rien dire...

Tu veux pouvoir créer un bouton dont tu peux modifier la font, la couleur de cette font etc...
On te dit :
- Utilise le Canvas, c'est le meilleur moyen
- Utilise la bibliothèque 2DDrawing pour créer ton image texte que tu appliqueras au canvas.
- Le Forum REGORGE d'exemples : un exemple parmis d'autres
http://www.purebasic.fr/french/viewtopi ... on+couleur
après une fois fait on me dire que mon code est nul
alors que j'ai demander comment procéder et que ont ne m'as pas dis.
Fais un code qui ne fait pas 3 pages ou du moins qui n'est pas "censer" aider les autres... C'est pas pareil.
Fais la différence entre : Je vous propose un super truc qui s'avère être inutile et J'ai besoin d'aide pour ce code... Là je fais comme ça, puis je mieux faire ?
Tu comprends la différence ??? On ne refuse jamais de l'aide à quelqu'un. Mais on ne va tout coder pour toi.

Donc fais un essai et poste le.

Re: Demande Conseil, création bouton Style RTF

Publié : mer. 22/mars/2017 16:58
par Shadow
Merci Ar'S,

Je ne veux pas qu'on face à ma place.
Je demande comment procédé.

Vous n'avez pas compris que je ne veux pas refaire un bouton entier.
Je veux juste changer le texte (Un texte multi couleur dans un même bouton) tu me comprends ?

Je veux juste savoir la syntaxe à utiliser, pourtant j'ai crue avoir tous dit au premier message :?
J'vé faire au mieux et on verra après :)

Re: Demande Conseil, création bouton Style RTF

Publié : mer. 22/mars/2017 17:16
par falsam
Shadow a écrit :Je veux juste changer le texte (Un texte multi couleur dans un même bouton) tu me comprends ?
Tout à fait Shadow.

Ce que tu dis a fait remonter à la surface une phrase similaire datant de 6 ans.
je cherche en faite a personnaliser entierement mon bouton tu comprends :)
http://www.purebasic.fr/french/viewtopi ... 92#p125892

Donc ce que tu souhaites c'est de te servir des boutons natifs de PureBasic et juste modifier quelques caractéristique du texte.

■ Code

Code : Tout sélectionner

;ButtonColorGadget V1.02 
;
;Description de chacun des paramètres
;---------------------------------
;   Gadget      Identifiant du gadget concerné
;   x           Coordonné gauche sur la fenetre
;   y           Coordonné haut sur la fenetre
;   Width       Largeur du bouton
;   Height      Hauteur du bouton
;   Caption     Text du bouton
;   fColor,     Front Color (Couleur du texte)
;   bColor      Back Color (Couleur du bouton)
;   sBorder     Epaisseur de la bordure
;   cBorder     Couleur de la bordure
;   Option      Null par defaut ou #PB_Button_Toggle (Voir l'aide sur  ButtonImageGadget)
;   GradientColor   Obtenir un dégradé de couleur
;   FontId      #PB_Default font par defaut ou police de caractére pour ce bouton

Procedure ButtonColorgadget(Gadget, x, y ,Width, Height ,Text$, fColor, bColor, Option=0, GradientColor=#False, FontID=#PB_Default)
  Protected Img.i, Result.i  
  
  Img=CreateImage(#PB_Any, Width, Height)
  If StartDrawing(ImageOutput(Img))
    DrawingFont(FontId) 
    If GradientColor=#True
      Box(0, 0 ,Width, Height, bColor)
      DrawingMode(#PB_2DDrawing_Gradient|#PB_2DDrawing_Transparent)
      FrontColor(bColor)
      BackColor(fColor)
      BoxedGradient(0, 0, Width, Height)  
      DrawText(Width/2 - TextWidth(Text$)/2, Height/2-TextHeight(Text$)/2,Text$)
    Else
      Box(0, 0 ,Width, Height, bColor)
      DrawText(Width/2 - TextWidth(Text$)/2, Height/2-TextHeight(Text$)/2,Text$,fColor,bColor)
    EndIf
    
    StopDrawing()
    
    Result = ButtonImageGadget(Gadget, x, y, Width, height , ImageID(Img), Option)
    If Gadget = #PB_Any
      ProcedureReturn Result
    Else
      ProcedureReturn Gadget
    EndIf
  EndIf
EndProcedure

Macro ButtonImageGadget : ButtonColorGadget :EndMacro


Declare OnClick()

OpenWindow(0,100,100,400,250,"Boutons Colorés - Quelques exemples",#PB_Window_SystemMenu)

ButtonImageGadget(#PB_Any,10,10,150,30, "Police par defaut", $9F9F9F, $B2FBE5,#PB_Button_Toggle)
ButtonImageGadget(#PB_Any,10,50,150,30, "Arial Italic", $DDDDDD, $494949,0,LoadFont(0,"Arial",12, #PB_Font_Italic))
ButtonImageGadget(#PB_Any,10,90,150,30, "En Rouge et Noir", $0611F9, $000000)
ButtonImageGadget(#PB_Any,10,130,150,30, "Texte Radient", $080BBB, $43B780, 0, #True, LoadFont(0,"Arial",12, #PB_Font_Bold))

ClickMe = ButtonImageGadget(#PB_Any,10,170,150,30,"Click Me",$080BBB, $43B780,0, #False, LoadFont(0,"Arial",12, #PB_Font_Bold))

BindGadgetEvent(ClickMe, @OnClick())
BindGadgetEvent(ClickMe, @OnClick(), #PB_EventType_Focus )
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow

Procedure OnClick()
  Debug "Clique"
EndProcedure
Une bonne base je pense ? :wink:

Pour te rafraîchir la mémoire tu as déja fait ça ici http://www.purebasic.fr/french/viewtopi ... 12#p126212

Avec tout ça tu as de quoi faire je pense.

Re: Demande Conseil, création bouton Style RTF

Publié : mer. 22/mars/2017 17:38
par Shadow
Merci je vais creuser :)