Comment renvoyer les caractéristiques de la sélection

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Comment renvoyer les caractéristiques de la sélection

Message par dayvid »

Voilà je cherche dans un iditor gadget a renvoiller les caractéristique de la sélection d'un mot:

La police utiliser
La taille de la police
La couleurs de la police
Le style de la police (gras, soulignier, etc.)
etc.

Merci d'avence :D

Si sa a déjà été dit, désoler
veuillez simplement me r'appeler SVP ou c'est :)
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Comment renvoiller les caractéristique de la sélection

Message par dayvid »

Pourquoi personne ne répond, personne ne sais sa ?
Non moi j'ai chercher mais j'ai pas trouvé
ya bien quelque chose comme:

SendMessage_(GadgetID(Gadget), #EM_GETCHARFORMAT, #SCF_SELECTION, @format)
ou un truc du genre mais je ne sais pas comment récupérer le résulta :(

Il faut bien passer par l’api de Windows non
et en plus je ne suis pas fort la dans moi :cry:

J'ai pas sa dans mes exemples de code :|

Je le saurais sinon, c'est la que j'ai regarder d'abord avent de demander :wink:

J'ai fait une très vague recherche sans rien trouvé sur le forum
mais a tous les coup c'est que j'ai mal chercher :roll:

Bon ba alors il me reste simplement a attendre que quelqu'un
veuille bien me donner une solution mais je cherche de mon coté aussi :)

Ba oui, sa je sais que je peut le trouvé même si c'est dans 10 ans
c'est pas comme l'autre truc « Comment trouver des mots similaires parmi une liste »
ou la je n'y serais jamais arriver :wink:

Bon pourquoi personne ne me répond, voyon voir:

Parce qu'il ont pas le temps 30 %
Parce qu'il ont pas envie 50 %
Parce qu'il pense que tu les prends pour des billes 40 %(mais non, même pas vrais d'abord :()
Parce que tu fait chier a tous le temps demander, demander, demander, toujour demander 85 % (mais si je demande, c'est que je ne sais pas moi, snif snif snif :cry:)
Parce qu'il travail 5 % (Quoi a une heur pareil 8O, sons fous ces romain :lol:)
Parce que t'es un BOULET 100 % (alors sa j'le savais pas :mrgreen:)
Parce qu'il trouve que t'es un gros con 99 % :mrgreen: :lol: (et sa se trouve ils on raison qui sais) :roll:

T'facon personne m'aime alors :| :cry: (ba y'en as bien un au moins quand même non ? :? , même pas un ? 8O)

Voilà Voilà, j'ai piquer ma petite crise et maintenant je vais faire un gros mega dodo (suce son pouce) :lol:
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
Emperor
Messages : 36
Inscription : lun. 28/juil./2008 18:36
Localisation : Québec, Québec

Re: Comment renvoiller les caractéristique de la sélection

Message par Emperor »

bon de 1, on se relaxe les hormones la, ça veut pas dire qu'on a tous le temps ou les connaissances pour te répondre.

tu peux aller voir sur ce post (anglais) : http://purebasic.fr/english/viewtopic.p ... adget+font

Souvent si la réponse n'est pas sur le forum français, elle l'est sur le forum anglais. :wink:
The time flies away
Flies towards the farrest skies
A rush of adrenaline
Stopped by the global acceptation
Of me


Ambient Reminiscences - Mouchalagane
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Re: Comment renvoiller les caractéristique de la sélection

Message par jbernard13 »

bonjour

que veux tu faire exactement?
as tu lu le tuto sur le le format rtf qui permet de faire plein de choses avec un editeurgadget .

http://www.purebasic.fr/french/viewtopi ... =21&t=9674
Jbernard13
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Comment renvoiller les caractéristique de la sélection

Message par dayvid »

Merci a vous :)

En faite j'ai mis du texte en couleur avec ces code-ci (ce n'est pas du RTF)

Code : Tout sélectionner

cf2.CHARFORMAT2
            cf2\cbSize = SizeOf(CHARFORMAT2)
            cf2\dwMask = #CFM_UNDERLINETYPE | #CFM_SIZE | #CFM_COLOR
            cf2\yheight = 150
            cf2\crTextColor = RGB(245, 130, 10)
            cf2\bUnderlineType = 0
            SendMessage_(GadgetID(#Editor_0), #EM_SETCHARFORMAT, #SCF_SELECTION, cf2)
Mais la moi je ne veut pas donner une couleur, etc au texte de l'editor gadget
non je voudrait récupérer:

La police utiliser du mot sélectionner
La taille de la police du mot sélectionner
La couleurs de la police du mot sélectionner
Le style de la police du mot sélectionner (gras, souligner, etc.)
etc.
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Comment renvoiller les caractéristique de la sélection

Message par nico »

Code : Tout sélectionner

cf2.CHARFORMAT2
cf2\cbSize = SizeOf(CHARFORMAT2)

SendMessage_(GadgetID(Gadget), #EM_GETCHARFORMAT, #SCF_SELECTION, @cf2)

debug cf2\crTextColor
debug cf2\yheight

; etc, etc ...
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Comment renvoiller les caractéristique de la sélection

Message par dayvid »

Ha supert ce code, merci Nico :)
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Comment renvoyer les caractéristiques de la sélection

Message par dayvid »

Je ne vais pas être très précis j'en est peur et vue que j'ai oublier le code, ça va rien n'aranger
mais je rencontre un problème avec un de mes code, comment dire
la commande est corecte et tous marche niquel:

en gros, je selectionne un mot ou n'importe
et je fait avec un procedure,n renvoyer la selection
et la sa me renvoie tous ce qui as a savoir sur cette selection:

La police
Le style de la police
La taille de la police
La couleur du texte de la police
La couleur d'arrier plant du texte de la police

exemple: "texte" = en gras, italique, soulignier et barrer
= police = "arial"
= taille = "9"
= couleur du texte par defaut = noir "non changer"
= couleur du fond du texte par defaut = blanc "non changer"


alors dans mon problème si je change:

La police
Le style de la police
La taille de la police

et que je demande de renvoyer la selection, tous va bien
sa me renvoie bien toutes les donner que je veut
mais des que je change la couleur ou c'elle du fond
sa me renvoie pluque:

Style du texte = "inconnue", ni 1 = gras, ni italique = 2, ni soulignier = 4, ni barrer = 8
la commande revoie méton un n ombre derisoire comme par exemple 12452547 "nombre invanté"

police = "arial"
taille police = "9"
couleur du texte par defaut = 0
couleur du fond du texte par defaut = 0

Ya pas de problème de variables ou autres, c'est juste les commandes qui renvoies 0
alors que elle devrais renvoyer normallement les couleur de la selection

Bon si tous ceci est incompreanssible ce que je pence, ne répondez pas
je posterais le code la prochaine fois

car je cherche a faire un editeur de texte avec la pocibilité de personnaliser le texte
comme par exemple dans wordpad ou autres

Peut être y aurais t-il des exemple de programme, je vais aller jetter un oeil dans
le bon fofo, a plus tous le monde :)
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Comment renvoyer les caractéristiques de la sélection

Message par dayvid »

Pfffffuuuuuu !

Pas trouvé grand chose sur le sujet mais
bon ce n'est pas grave
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Comment renvoyer les caractéristiques de la sélection

Message par Le Soldat Inconnu »

avec un exemple, ça aiderait. parce comme ça, sans code...
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Comment renvoyer les caractéristiques de la sélection

Message par dayvid »

Oui oui tu as 100 % resond solda inconnue :wink:

Donc voilà mon programme:

Code : Tout sélectionner

Enumeration
  #Window
  #Editor
  #Button_Valider
  #Button_Annuler
  #PopupImageMenu
EndEnumeration

Global MenuID_Police = 0, MenuID_Taille_police = 0
Global Taille_Police = 9, Police$ = "Arial", Reponce_taille_Police$ = ""
Global Style_en_gras, Style_en_Italique, Style_en_soulignier, Style_en_barrer

Structure CHARFORMAT2_ 
  cbSize.l 
  dwMask.l  
  dwEffects.l  
  yHeight.l  
  yOffset.l  
  crTextColor.l  
  bCharSet.b  
  bPitchAndFamily.b  
  szFaceName.b[#LF_FACESIZE]  
  _wPad2.w  
  wWeight.w  
  sSpacing.w  
  crBackColor.l  
  lcid.l  
  dwReserved.l  
  sStyle.w  
  wKerning.w  
  bUnderlineType.b  
  bAnimation.b  
  bRevAuthor.b  
  bReserved1.b 
EndStructure

Structure Selection
  StyleTexte.s
  CouleurTexte.l
  CouleurFondTexte.l
  TailleTexte.l
  NomPolice.s
EndStructure

Global Caracteristique.Selection\StyleTexte.s = ""
Global Caracteristique.Selection\CouleurTexte.l = 0
Global Caracteristique.Selection\CouleurFondTexte.l = 0
Global Caracteristique.Selection\TailleTexte.l = 0
Global Caracteristique.Selection\NomPolice.s = ""

Procedure.b GadgetHover(Gadget.b, Window.b)
  
  ; Ou se trouve le pointeur de la souris
  x = WindowMouseX(#Window) : 
  y = WindowMouseY(#Window)
  
  ; Quel sont les coordonnées du gadget survolé
  gx = GadgetX(gadget)
  gy = GadgetY(gadget)
  
  If x >= gx And x <= gx+GadgetWidth(Gadget)
    If y >= gy And y <= gy+GadgetHeight(Gadget)
      ProcedureReturn #True
    EndIf
  EndIf
  ProcedureReturn #False
EndProcedure

Procedure Police(Police$)
  format.CHARFORMAT
  format\cbSize = SizeOf(CHARFORMAT) 
  PokeS(@format\szFaceName, Police$)
  format\dwMask = #CFM_FACE
  SendMessage_(GadgetID(#Editor), #EM_SETCHARFORMAT, #SCF_SELECTION, @format)
EndProcedure 

Procedure Taille_police(Taille)
format.CHARFORMAT
format\cbSize = SizeOf(CHARFORMAT)
format\dwMask = #CFM_SIZE
format\yHeight = Taille * 20
SendMessage_(GadgetID(#Editor), #EM_SETCHARFORMAT, #SCF_SELECTION, @format)
EndProcedure

Procedure Style_police(En_gras, En_italique, En_soulignier, En_barrer)
  Debug Str(En_gras) + Str(En_italique) + Str(En_soulignier) + Str(En_barrer)
  format.CHARFORMAT
  format\cbSize = SizeOf(CHARFORMAT) 
  format\dwMask = #CFM_ITALIC|#CFM_BOLD|#CFM_STRIKEOUT|#CFM_UNDERLINE
  format\dwEffects = En_italique|En_gras|En_barrer|En_soulignier
  SendMessage_(GadgetID(#Editor), #EM_SETCHARFORMAT, #SCF_SELECTION, @format)
EndProcedure

Procedure.s GetStringStyle(Style.l)
  Style - 1073741824
  Debug Style
  If Style = 0
    Style$ = "Aucun"
  ElseIf Style = 1
    Style$ = "Gras"
  ElseIf Style = 2
    Style$ = "Italique"
  ElseIf Style = 3
    Style$ = "Gras + Italique"
  ElseIf Style = 4
    Style$ = "Soulignier"
  ElseIf Style = 5
    Style$ = "Gras + Soulignier"
  ElseIf Style = 6
    Style$ = "Italique + Soulignier"
  ElseIf Style = 7
    Style$ = "Gras + Italique + Soulignier"
  ElseIf Style = 8
    Style$ = "Barrer"
  ElseIf Style = 9
    Style$ = "Gras + Barrer"
  ElseIf Style = 10
    Style$ = "Italique + Barrer"
  ElseIf Style = 11
    Style$ = "Gras + Italique + Barrer"
  ElseIf Style = 12
    Style$ = "Soulignier + Barrer"
  ElseIf Style = 13
    Style$ = "Gras + Soulignier + Barrer"
  ElseIf Style = 14
    Style$ = "SItalique + Soulignier + Barrer"
  ElseIf Style = 15
    Style$ = "Gras + Italique + Soulignier + Barrer"
  Else
    Style$ = "Inconnue"
  EndIf
  
  ProcedureReturn Style$
EndProcedure

Procedure CaracteristiqueSelection()
  
  format.CHARFORMAT
  format\cbSize = SizeOf(CHARFORMAT)
  
  SendMessage_(GadgetID(#Editor), #EM_GETCHARFORMAT, #SCF_SELECTION, @format)
  
  Caracteristique.Selection\StyleTexte = GetStringStyle(format\dwEffects)
  Rouge1 = Red(format\crTextColor)
  Vert1 = Green(format\crTextColor)
  Bleu1 = Blue(format\crTextColor)
  Caracteristique.Selection\CouleurTexte = Rouge1 * Vert1 * Bleu1
  Caracteristique.Selection\TailleTexte = format\yHeight / 20
  *Police = @format\szFaceName
  *NomPolice.String = @*Police
  Caracteristique.Selection\NomPolice = *NomPolice\s
  
  format2.CHARFORMAT2_
  format2\cbSize = SizeOf(CHARFORMAT2_)
  
  SendMessage_(GadgetID(#Editor), #EM_GETCHARFORMAT, #SCF_SELECTION, @format2)
  
  Rouge2 = Red(format2\crBackColor)
  Vert2 = Green(format2\crBackColor)
  Bleu2 = Blue(format2\crBackColor)
  Caracteristique.Selection\CouleurFondTexte = Rouge2 * Vert2 * Bleu2

Debug Caracteristique.Selection\StyleTexte
Debug Caracteristique.Selection\CouleurTexte
Debug Caracteristique.Selection\CouleurFondTexte
Debug Caracteristique.Selection\TailleTexte
Debug Caracteristique.Selection\NomPolice

EndProcedure

Procedure Couleur_police(Couleur_texte, Couleur_fond)
format.CHARFORMAT
format\cbSize = SizeOf(CHARFORMAT)
format\dwMask = #CFM_COLOR
format\crTextColor = Couleur_texte
format2.CHARFORMAT2_
format2\cbSize = SizeOf(CHARFORMAT2_) 
format2\dwMask = $4000000  ; = BACKCOLOR
format2\crBackColor = Couleur_fond
SendMessage_(GadgetID(#Editor), #EM_SETCHARFORMAT, #SCF_SELECTION, @format)
SendMessage_(GadgetID(#Editor), #EM_SETCHARFORMAT, #SCF_SELECTION, @format2)
Debug Couleur_texte
Debug Couleur_fond
EndProcedure

Procedure Editeur_de_style_de_texte()
  If OpenWindow(#Window, 398, 208, 600, 400, "Editeur de style de texte",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
    EditorGadget(#Editor, 5, 5, 590, 350)
    Police("Arial")
    Taille_police(9)
    ButtonGadget(#Button_Valider, 210, 365, 75, 25, "Valider")
    ButtonGadget(#Button_Annuler, 290, 365, 75, 25, "Annuler")
    CreatePopupImageMenu(#PopupImageMenu, #PB_Menu_ModernLook)
    MenuTitle("Police")
    MenuItem(1, "Arial")
    MenuItem(2, "Cambria")
    MenuItem(3, "Courier New")
    MenuItem(4, "Gungsuh")
    MenuItem(5, "Times New Roman")
    MenuItem(6, "Verdana")
    MenuBar()
    MenuItem(7, "Autres")
    
    SetMenuItemState(#PopupImageMenu, 1, 1)
    
    MenuTitle("Taille")
    IDMenuTaille = 7
    de = 1
    a = 9
    For Menu = 1 To 10
      OpenSubMenu("Taille " + Str(de) + " à " +  Str(a))
      For Taille = de To a
        IDMenuTaille + 1
        MenuItem(IDMenuTaille, Str(Taille))
      Next
      CloseSubMenu()
      If alternative = 0
        alternative + 1
      de + 9
      a + 10
    ElseIf alternative < 8
      alternative + 1
      de + 10
      a + 10
    Else
      de + 10
      a + 11
      EndIf
    Next
    
    MenuBar()
    MenuItem(108, "Autres")
    CloseSubMenu()
    SetMenuItemState(#PopupImageMenu, 15, 1)
    
    MenuTitle("Style")
    MenuItem(109, "Gras")
    MenuItem(110, "Italique") 
    MenuItem(111, "Soulignier") 
    MenuItem(112, "Barrer") 
    MenuBar()
    MenuItem(113, "Multiples")
    
    MenuTitle("Couleurs")
    OpenSubMenu("Couleur du texte")
    MenuItem(114, "Noir") 
    MenuItem(115, "Gris") 
    MenuItem(116, "Blanc") 
    MenuItem(117, "Jaune") 
    MenuItem(118, "Orange") 
    MenuItem(119, "Rouge") 
    MenuItem(120, "Rose") 
    MenuItem(121, "Magenta") 
    MenuItem(122, "Violet") 
    MenuItem(123, "Vert") 
    MenuItem(124, "Cyan") 
    MenuItem(125, "Bleu") 
    MenuItem(126, "Marron") 
    MenuBar()
    MenuItem(127, "Autres")
    CloseSubMenu()
    
    OpenSubMenu("Couleur du fond")
    MenuItem(128, "Noir") 
    MenuItem(129, "Gris") 
    MenuItem(130, "Blanc") 
    MenuItem(131, "Jaune") 
    MenuItem(132, "Orange") 
    MenuItem(133, "Rouge") 
    MenuItem(134, "Rose") 
    MenuItem(135, "Magenta") 
    MenuItem(136, "Violet") 
    MenuItem(137, "Vert") 
    MenuItem(138, "Cyan") 
    MenuItem(139, "Bleu") 
    MenuItem(140, "Marron") 
    MenuBar()
    MenuItem(141, "Autres")
    CloseSubMenu()
    
    CloseSubMenu()
    
  EndIf
  
  Repeat ; Start of the event loop
    
    Event = WaitWindowEvent() ; This line waits until an event is received from Windows
    WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
    GadgetID = EventGadget() ; Is it a gadget event?
    EventType = EventType() ; The event type
    
    Select Event
        
      Case #PB_Event_Gadget
        
        If GadgetID = #Editor
          
        ElseIf GadgetID = #Button_Valider
          
        ElseIf GadgetID = #Button_Annuler
          
        EndIf
        
      Case #PB_Event_Menu
        
        Menu = EventMenu()
        
        Select Menu
            
          Case 1 ; Police Arial
            Police("Arial")
            SetMenuItemState(#PopupImageMenu, 1, 1)
            SetMenuItemState(#PopupImageMenu, 2, 0)
            SetMenuItemState(#PopupImageMenu, 3, 0)
            SetMenuItemState(#PopupImageMenu, 4, 0)
            SetMenuItemState(#PopupImageMenu, 5, 0)
            SetMenuItemState(#PopupImageMenu, 6, 0)
            SetMenuItemState(#PopupImageMenu, 7, 0)
            SetMenuItemText(#PopupImageMenu, 7, "Autres")
            MenuID_Police = 1
          Case 2 ; Police Cambria
            Police("Cambria")
            SetMenuItemState(#PopupImageMenu, 1, 0)
            SetMenuItemState(#PopupImageMenu, 2, 1)
            SetMenuItemState(#PopupImageMenu, 3, 0)
            SetMenuItemState(#PopupImageMenu, 4, 0)
            SetMenuItemState(#PopupImageMenu, 5, 0)
            SetMenuItemState(#PopupImageMenu, 6, 0)
            SetMenuItemState(#PopupImageMenu, 7, 0)
            SetMenuItemText(#PopupImageMenu, 7, "Autres")
            MenuID_Police = 2
          Case 3 ; Police Courier New
            Police("Courier New")
            SetMenuItemState(#PopupImageMenu, 1, 0)
            SetMenuItemState(#PopupImageMenu, 2, 0)
            SetMenuItemState(#PopupImageMenu, 3, 1)
            SetMenuItemState(#PopupImageMenu, 4, 0)
            SetMenuItemState(#PopupImageMenu, 5, 0)
            SetMenuItemState(#PopupImageMenu, 6, 0)
            SetMenuItemState(#PopupImageMenu, 7, 0)
            SetMenuItemText(#PopupImageMenu, 7, "Autres")
            MenuID_Police = 3
          Case 4 ; Police Gungsuh
            Police("Gungsuh")
           SetMenuItemState(#PopupImageMenu, 1, 0)
            SetMenuItemState(#PopupImageMenu, 2, 0)
            SetMenuItemState(#PopupImageMenu, 3, 0)
            SetMenuItemState(#PopupImageMenu, 4, 1)
            SetMenuItemState(#PopupImageMenu, 5, 0)
            SetMenuItemState(#PopupImageMenu, 6, 0)
            SetMenuItemState(#PopupImageMenu, 7, 0)
            SetMenuItemText(#PopupImageMenu, 7, "Autres")
            MenuID_Police = 4
          Case 5 ; Police Times New Roman
            Police("Times New Roman")
            SetMenuItemState(#PopupImageMenu, 1, 0)
            SetMenuItemState(#PopupImageMenu, 2, 0)
            SetMenuItemState(#PopupImageMenu, 3, 0)
            SetMenuItemState(#PopupImageMenu, 4, 0)
            SetMenuItemState(#PopupImageMenu, 5, 1)
            SetMenuItemState(#PopupImageMenu, 6, 0)
            SetMenuItemState(#PopupImageMenu, 7, 0)
            SetMenuItemText(#PopupImageMenu, 7, "Autres")
            MenuID_Police = 5
          Case 6 ; Police Verdana
            Police("Verdana")
            SetMenuItemState(#PopupImageMenu, 1, 0)
            SetMenuItemState(#PopupImageMenu, 2, 0)
            SetMenuItemState(#PopupImageMenu, 3, 0)
            SetMenuItemState(#PopupImageMenu, 4, 0)
            SetMenuItemState(#PopupImageMenu, 5, 0)
            SetMenuItemState(#PopupImageMenu, 6, 1)
            SetMenuItemState(#PopupImageMenu, 7, 0)
            SetMenuItemText(#PopupImageMenu, 7, "Autres")
            MenuID_Police = 6
          Case 7 ; Autres Police
            Police = FontRequester("", 0, 0)
            If Police = 1
              SetMenuItemState(#PopupImageMenu, 1, 0)
              SetMenuItemState(#PopupImageMenu, 2, 0)
              SetMenuItemState(#PopupImageMenu, 3, 0)
              SetMenuItemState(#PopupImageMenu, 4, 0)
              SetMenuItemState(#PopupImageMenu, 5, 0)
              SetMenuItemState(#PopupImageMenu, 6, 0)
              SetMenuItemState(#PopupImageMenu, 7, 0)
              
              If SelectedFontName() > ""
                SetMenuItemState(#PopupImageMenu, 7, 1)
                Police(SelectedFontName())
                SetMenuItemText(#PopupImageMenu, 7, SelectedFontName())
                MenuID_Police = 7
              Else
                SetMenuItemState(#PopupImageMenu, MenuID_Police, 1)
                SetMenuItemText(#PopupImageMenu, 7, "Autres")
              EndIf
              
                Taille_police(SelectedFontSize())
                For recherche_menu = 8 To 107
                  If Val(GetMenuItemText(#PopupImageMenu, recherche_menu)) = SelectedFontSize()
                    For Taille_Police = 8 To 108
                      SetMenuItemState(#PopupImageMenu, Taille_Police, 0)
                    Next
                    SetMenuItemState(#PopupImageMenu, recherche_menu, 1)
                  EndIf
                Next 
              
            EndIf
            
          Case 8 To 107 ; Taille Police
            MenuID_Taille_Police = Menu
            Taille_police(Val(GetMenuItemText(#PopupImageMenu, Menu)))
            For Taille_Police = 8 To 108
              SetMenuItemState(#PopupImageMenu, Taille_Police, 0)
            Next
            SetMenuItemState(#PopupImageMenu, Menu, 1)
            SetMenuItemText(#PopupImageMenu, 108, "Autres")
            
          Case 108 ; Autres taille police
            Reponce_taille_Police:
            Reponce_taille_Police$ = InputRequester("Choisir une autre taille de police", "Veuillez choisir la nouvelle taille de police:", Reponce_taille_Police$)
            If Reponce_taille_Police$ > ""
            Taille_Police = Val(Reponce_taille_Police$)
            
            If Taille_Police > 0
              ; tous va bien
              MenuID_Police = 108
              For Taille_Police = 8 To 107
              SetMenuItemState(#PopupImageMenu, Taille_Police, 0)
            Next
            SetMenuItemState(#PopupImageMenu, 108, 1)
            SetMenuItemText(#PopupImageMenu, 108, Reponce_taille_Police$)
            Taille_police(Val(Reponce_taille_Police$))
            
            Else
              MessageRequester("Erreur de saisie", "     Cette saisie est invalide !, La saisie ne doit comporter que des chiffres                   et doit être supérieur a 0, veuillez entrez une taille valide", 48)
              Reponce_taille_Police$ = ""
              Goto Reponce_taille_Police
            EndIf
          Else
            SetMenuItemState(#PopupImageMenu, MenuID_Police, 1)
            MessageRequester("Information", "      La saisie est vide !, Celle-ci à été annuler", 64)
          EndIf
          
        Case 109 ; Style gras
            Style_police(Style_en_gras = #CFM_BOLD, Style_en_Italique = 0, Style_en_soulignier = 0, Style_en_barrer = 0)
            SetMenuItemState(#PopupImageMenu, 109, 1)
            SetMenuItemState(#PopupImageMenu, 110, 0)
            SetMenuItemState(#PopupImageMenu, 111, 0)
            SetMenuItemState(#PopupImageMenu, 112, 0)
            SetMenuItemState(#PopupImageMenu, 113, 0)
          Case 110 ; Style Italique
            Style_police(Style_en_gras = 0, Style_en_Italique = #CFM_ITALIC, Style_en_soulignier = 0, Style_en_barrer = 0)
            SetMenuItemState(#PopupImageMenu, 109, 0)
            SetMenuItemState(#PopupImageMenu, 110, 1)
            SetMenuItemState(#PopupImageMenu, 111, 0)
            SetMenuItemState(#PopupImageMenu, 112, 0)
            SetMenuItemState(#PopupImageMenu, 113, 0)
          Case 111 ; Style soulignier
            Style_police(Style_en_gras = 0, Style_en_Italique = 0, Style_en_soulignier = #CFM_UNDERLINE, Style_en_barrer = 0)
            SetMenuItemState(#PopupImageMenu, 109, 0)
            SetMenuItemState(#PopupImageMenu, 110, 0)
            SetMenuItemState(#PopupImageMenu, 111, 1)
            SetMenuItemState(#PopupImageMenu, 112, 0)
            SetMenuItemState(#PopupImageMenu, 113, 0)
          Case 112 ; Style Barrer
            Style_police(Style_en_gras = 0, Style_en_Italique = 0, Style_en_soulignier = 0, Style_en_barrer = #CFM_STRIKEOUT)
            SetMenuItemState(#PopupImageMenu, 109, 0)
            SetMenuItemState(#PopupImageMenu, 110, 0)
            SetMenuItemState(#PopupImageMenu, 111, 0)
            SetMenuItemState(#PopupImageMenu, 112, 1)
            SetMenuItemState(#PopupImageMenu, 113, 0)
          Case 113 ; Style Multiple
            Style_en_gras = GetMenuItemState(#PopupImageMenu, 109)
            Style_en_italique = GetMenuItemState(#PopupImageMenu, 110)
            Style_en_soulignier = GetMenuItemState(#PopupImageMenu, 111)
            Style_en_barrer = GetMenuItemState(#PopupImageMenu, 112)
            Style_Multiple = GetMenuItemState(#PopupImageMenu, 113)
            SetMenuItemState(#PopupImageMenu, 109, 0)
            SetMenuItemState(#PopupImageMenu, 110, 0)
            SetMenuItemState(#PopupImageMenu, 111, 0)
            SetMenuItemState(#PopupImageMenu, 112, 0)
            SetMenuItemState(#PopupImageMenu, 113, 0)
            
            Style_en_gras = MessageRequester("Choix de styles pour le texte", "        Voulez-vous que le Texte soit en Gras ?", 67)
            If Style_en_gras = #PB_MessageRequester_Yes ; Le bouton 'Oui' a été pressé
              Style_en_gras = #CFM_BOLD
              SetMenuItemState(#PopupImageMenu, 109, 1)
            ElseIf Style_en_gras = #PB_MessageRequester_No ; Le bouton 'Non' a été pressé
              Style_en_gras = 0
              SetMenuItemState(#PopupImageMenu, 109, 0)
            ElseIf Style_en_gras = #PB_MessageRequester_Cancel ; Le bouton 'Annuler' a été pressé
              Goto Saut_Style_Multiple
            EndIf
            
            Style_en_Italique = MessageRequester("Choix de styles pour le texte", "      Voulez-vous que le Texte soit en Italique ?", 67)
            If Style_en_Italique = #PB_MessageRequester_Yes ; Le bouton 'Oui' a été pressé
              Style_en_Italique = #CFM_ITALIC
              SetMenuItemState(#PopupImageMenu, 110, 1)
            ElseIf Style_en_Italique = #PB_MessageRequester_No ; Le bouton 'Non' a été pressé
              Style_en_Italique = 0
              SetMenuItemState(#PopupImageMenu, 110, 0)
            ElseIf Style_en_Italique = #PB_MessageRequester_Cancel ; Le bouton 'Annuler' a été pressé
              Goto Saut_Style_Multiple
            EndIf
            
            Style_en_soulignier = MessageRequester("Choix de styles pour le texte", "      Voulez-vous que le Texte soit en soulignier ?", 67)
            If Style_en_soulignier = #PB_MessageRequester_Yes ; Le bouton 'Oui' a été pressé
              Style_en_soulignier = #CFM_UNDERLINE
              SetMenuItemState(#PopupImageMenu, 111, 1)
            ElseIf Style_en_soulignier = #PB_MessageRequester_No ; Le bouton 'Non' a été pressé
              Style_en_soulignier = 0
              SetMenuItemState(#PopupImageMenu, 111, 0)
            ElseIf Style_en_soulignier = #PB_MessageRequester_Cancel ; Le bouton 'Annuler' a été pressé
              Goto Saut_Style_Multiple
            EndIf
            
            Style_en_barrer = MessageRequester("Choix de styles pour le texte", "       Voulez-vous que le Texte soit en barrer ?", 67)
            If Style_en_barrer = #PB_MessageRequester_Yes ; Le bouton 'Oui' a été pressé
              Style_en_barrer = #CFM_STRIKEOUT
              SetMenuItemState(#PopupImageMenu, 112, 1)
            ElseIf Style_en_barrer = #PB_MessageRequester_No ; Le bouton 'Non' a été pressé
              Style_en_barrer = 0
              SetMenuItemState(#PopupImageMenu, 112, 0)
            ElseIf Style_en_barrer = #PB_MessageRequester_Cancel ; Le bouton 'Annuler' a été pressé
              Goto Saut_Style_Multiple
            EndIf
            
            Style_police(Style_en_gras, Style_en_Italique, Style_en_soulignier, Style_en_barrer)
            
            Goto Saut_annuler
            
            Saut_Style_Multiple:
            If Style_en_gras = 1
              SetMenuItemState(#PopupImageMenu, 109, 1)
            EndIf
            
            If Style_en_italique = 1
              SetMenuItemState(#PopupImageMenu, 110, 1)
            EndIf
            
            If Style_en_soulignier = 1
              SetMenuItemState(#PopupImageMenu, 111, 1)
            EndIf
            
            If Style_en_barrer = 1
              SetMenuItemState(#PopupImageMenu, 112, 1)
            EndIf
            
            If Style_Multiple = 1
              SetMenuItemState(#PopupImageMenu, 113, 1)
            EndIf
            
            Saut_annuler:
            
          Case 114 To 126 ; Couleur du texte
            If Menu = 114 ; Noir
              Couleur_police(RGB(0, 0, 0), Caracteristique.Selection\CouleurFondTexte)
            ElseIf Menu = 115 ; Gris
              Couleur_police(RGB(186, 186, 186), Caracteristique.Selection\CouleurFondTexte)
            ElseIf Menu = 116 ; Blanc
              Couleur_police(RGB(255, 255, 255), Caracteristique.Selection\CouleurFondTexte)
            ElseIf Menu = 117 ; Jaune
              Couleur_police(RGB(255, 255, 0), Caracteristique.Selection\CouleurFondTexte)
            ElseIf Menu = 118 ; Orange
              Couleur_police(RGB(255, 150, 0), Caracteristique.Selection\CouleurFondTexte)
            ElseIf Menu = 119 ; Rouge
              Couleur_police(RGB(255, 0, 0), Caracteristique.Selection\CouleurFondTexte)
            ElseIf Menu = 120 ; Rose
              Couleur_police(RGB(255, 135, 180), Caracteristique.Selection\CouleurFondTexte)
            ElseIf Menu = 121 ; Magenta
              Couleur_police(RGB(128, 0, 128), Caracteristique.Selection\CouleurFondTexte)
            ElseIf Menu = 122 ; Violet
              Couleur_police(RGB(111, 49, 152), Caracteristique.Selection\CouleurFondTexte)
            ElseIf Menu = 123 ; Vert
              Couleur_police(RGB(0, 128, 0), Caracteristique.Selection\CouleurFondTexte)
            ElseIf Menu = 124 ; Cyan
              Couleur_police(RGB(0, 255, 255), Caracteristique.Selection\CouleurFondTexte)
            ElseIf Menu = 125 ; Bleu
              Couleur_police(RGB(77, 109, 243), Caracteristique.Selection\CouleurFondTexte)
            ElseIf Menu = 126 ; Marron
              Couleur_police(RGB(128, 64, 0), Caracteristique.Selection\CouleurFondTexte)
            EndIf
            
          Case 127 ; ; Autres couleur de texte
            
          Case 128 To 140 ; Couleur de fond du texte
            If Menu = 128 ; Noir
              Couleur_police(Caracteristique.Selection\CouleurTexte, RGB(0, 0, 0))
            ElseIf Menu = 129 ; Gris
              Couleur_police(Caracteristique.Selection\CouleurTexte, RGB(186, 186, 186))
            ElseIf Menu = 130 ; Blanc
              Couleur_police(Caracteristique.Selection\CouleurTexte, RGB(255, 255, 255))
            ElseIf Menu = 131 ; Jaune
              Couleur_police(Caracteristique.Selection\CouleurTexte, RGB(255, 255, 0))
            ElseIf Menu = 132 ; Orange
              Couleur_police(Caracteristique.Selection\CouleurTexte, RGB(255, 150, 0))
            ElseIf Menu = 133 ; Rouge
              Couleur_police(Caracteristique.Selection\CouleurTexte, RGB(255, 0, 0))
            ElseIf Menu = 134 ; Rose
              Couleur_police(Caracteristique.Selection\CouleurTexte, RGB(255, 135, 180))
            ElseIf Menu = 135 ; Magenta
              Couleur_police(Caracteristique.Selection\CouleurTexte, RGB(128, 0, 128))
            ElseIf Menu = 136 ; Violet
              Couleur_police(Caracteristique.Selection\CouleurTexte, RGB(111, 49, 152))
            ElseIf Menu = 137 ; Vert
              Couleur_police(Caracteristique.Selection\CouleurTexte, RGB(0, 128, 0))
            ElseIf Menu = 138 ; Cyan
              Couleur_police(Caracteristique.Selection\CouleurTexte, RGB(0, 255, 255))
            ElseIf Menu = 139 ; Bleu
              Couleur_police(Caracteristique.Selection\CouleurTexte, RGB(77, 109, 243))
            ElseIf Menu = 140 ; Marron
              Couleur_police(Caracteristique.Selection\CouleurTexte, RGB(128, 64, 0))
            EndIf
            
          Case 141  ; Autres couleur de fond de texte
            
        EndSelect
        
      Case #WM_RBUTTONDOWN
        
        If GadgetHover(#Editor,WindowID(#Window))

          CaracteristiqueSelection()
          
          SetMenuItemState(#PopupImageMenu, 1, 0)
          SetMenuItemState(#PopupImageMenu, 2, 0)
          SetMenuItemState(#PopupImageMenu, 3, 0)
          SetMenuItemState(#PopupImageMenu, 4, 0)
          SetMenuItemState(#PopupImageMenu, 5, 0)
          SetMenuItemState(#PopupImageMenu, 6, 0)
          SetMenuItemState(#PopupImageMenu, 7, 0)
          
          For Taille_Police = 8 To 108
            SetMenuItemState(#PopupImageMenu, Taille_Police, 0)
          Next
          
          SetMenuItemState(#PopupImageMenu, 109, 0)
          SetMenuItemState(#PopupImageMenu, 110, 0)
          SetMenuItemState(#PopupImageMenu, 111, 0)
          SetMenuItemState(#PopupImageMenu, 112, 0)
          SetMenuItemState(#PopupImageMenu, 113, 0)
          
          SetMenuItemText(#PopupImageMenu, 7, "Autres")
          SetMenuItemText(#PopupImageMenu, 108, "Autres")
          
          
          
          If FindString(Caracteristique.Selection\StyleTexte, "Gras", 1)
            SetMenuItemState(#PopupImageMenu, 109, 1)
          EndIf
          
          If FindString(Caracteristique.Selection\StyleTexte, "Italique", 1)
            SetMenuItemState(#PopupImageMenu, 110, 1)
          EndIf
          
          If FindString(Caracteristique.Selection\StyleTexte, "Soulignier", 1)
            SetMenuItemState(#PopupImageMenu, 111, 1)
          EndIf
          
          If FindString(Caracteristique.Selection\StyleTexte, "Barrer", 1)
            SetMenuItemState(#PopupImageMenu, 112, 1)
          EndIf
          
          Recherche_Taille_Police = Caracteristique.Selection\TailleTexte
          
        For recherche_menu = 8 To 108
          If Val(GetMenuItemText(#PopupImageMenu, recherche_menu)) = Recherche_Taille_Police
            For Taille_Police = 8 To 108
              SetMenuItemState(#PopupImageMenu, Taille_Police, 0)
            Next
            SetMenuItemState(#PopupImageMenu, recherche_menu, 1)
            Break
          EndIf
        Next
        
        If recherche_menu = 108
          SetMenuItemText(#PopupImageMenu, 108, Str(Caracteristique.Selection\TailleTexte))
          SetMenuItemState(#PopupImageMenu, 108, 1)
        EndIf
        
          If FindString(Caracteristique.Selection\NomPolice, "Arial", 1)
            SetMenuItemState(#PopupImageMenu, 1, 1)
          EndIf
          
          If FindString(Caracteristique.Selection\NomPolice, "Cambria", 1)
            SetMenuItemState(#PopupImageMenu, 2, 1)
          EndIf
          
          If FindString(Caracteristique.Selection\NomPolice, "Courier New", 1)
            SetMenuItemState(#PopupImageMenu, 3, 1)
          EndIf
          
          If FindString(Caracteristique.Selection\NomPolice, "Gungsuh", 1)
            SetMenuItemState(#PopupImageMenu, 4, 1)
          EndIf
          
          If FindString(Caracteristique.Selection\NomPolice, "Times New Roman", 1)
            SetMenuItemState(#PopupImageMenu, 5, 1)
          EndIf
          
          If FindString(Caracteristique.Selection\NomPolice, "Verdana", 1)
            SetMenuItemState(#PopupImageMenu, 6, 1)
          EndIf
          
          DisplayPopupMenu(#PopupImageMenu,WindowID(#Window))
        EndIf
        
    EndSelect
    
  Until Event = #PB_Event_CloseWindow ; End of the event loop
  
EndProcedure

Editeur_de_style_de_texte()
Ya GetStringStyle() qui renvoie sa 1073741824
donc j'ai fait style - 1073741824
mais des que je met de la couleur sa change je croix :|
berf j'ai pas compris pourquoi la sa ne marchais pas
car pour ma console graphique sa marche très bien !
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Répondre