gérer la couleur, la police dans un strig gadget

Sujets variés concernant le développement en PureBasic
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

gérer la couleur, la police dans un strig gadget

Message par dayvid »

voila je cherche une solution pour pouvoir gérer la couleur et la police dans un string gadget
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
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: gérer la couleur, la police dans un strig gadget

Message par venom »

Eu....
tu as déjà fait F1 dans purebasic ?

tu va sur stringgadget() et tu as cette phrase :
Ce gadget supporte les commandes SetGadgetColor() et GetGadgetColor() avec les valeurs 'TypeCouleur' suivantes:
:wink:







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: gérer la couleur, la police dans un strig gadget

Message par dayvid »

mais non je ne parle de perssonaliser entierement sons texte comme dans un rich edit quoi !!! :twisted:
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
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: gérer la couleur, la police dans un strig gadget

Message par venom »

explique une petit peut plus si non un bout de code mais explique plus

Code : Tout sélectionner

;- Window Constants
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
Enumeration
  #String_0
EndEnumeration

  If OpenWindow(#Window_0, 216, 0, 410, 55, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
      FontID1 = LoadFont(1, "Comic Sans MS", 14, #PB_Font_Bold)
      StringGadget(#String_0, 10, 10, 390, 40, "Voila j'ai changer la police et la couleur")
       SetGadgetFont(#String_0, FontID1)
        SetGadgetColor(#String_0, #PB_Gadget_FrontColor, RGB(128,52,250))
         SetGadgetColor(#String_0, #PB_Gadget_BackColor, RGB(0,0,0))
  EndIf
  
Repeat
  EventID = WaitWindowEvent()
  If EventID = #PB_Event_Gadget
    Select EventGadget()
        
    EndSelect
  EndIf
Until EventID = #PB_Event_CloseWindow







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: gérer la couleur, la police dans un strig gadget

Message par dayvid »

Modérateur : Notre ami s'énerve mais s'excuse plus bas, je ne censure donc pas ce sujet. Mais je te recommande tout de même de te relire pour le plus compréhensible et le plus correct possible, merci (J'ai vu que tu faisais des efforts et je t'en remercie)

ho comme c'est génial, il me prend pour un...

je te remerci mais ont c'est pas comprie la
poutemps je suis claire

PERSONNALISER LE TEXTE VOULUE

exemple:

ceci est un texte personnaliser
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
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: gérer la couleur, la police dans un strig gadget

Message par venom »

je te prend peut etre pour un...

mais avec un exemple concret sa évite d'avancer a taton et n'importe ou.
tu aurais donné cet exemple au 1er post ont aurait pas tourné en rond.






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: gérer la couleur, la police dans un strig gadget

Message par Backup »

dayvid a écrit :ho comme c'est génial, il me prend pour un...

je te remerci mais ont c'est pas comprie la
poutemps je suis claire

PERSONNALISER LE TEXTE VOULUE

heu ! Venom viens de te répondre , il n'y est pas obligé !
il l'a fait sur son temps , il a surement d'autre choses a faire...
comme tout les intervenant de ce forum, on est pas payé pour te répondre
alors , si tu commence a prendre les réponses qu'on te fait avec ce ton, tu vas pas avoir que des potes sur ce forum ! ;)
kwandjeen
Messages : 204
Inscription : dim. 16/juil./2006 21:44

Re: gérer la couleur, la police dans un strig gadget

Message par kwandjeen »

Tiens je te met le code d'un de mes logiciels (avec des astuces tirées des forums FR et EN). Ce n'est pas inamical mais sache que je n'aime pas ta façon de parler aux gens :wink:

Normalement tu dois arriver à faire ce que tu désires.

Code : Tout sélectionner

;********************
;       STIF
; Search Text In File
;
;     kwandjeen
;
;   fevrier 2009
;********************

;recherche un texte dans des fichiers
;affiche les fichiers et la ligne ou le texte à été trouvé

Enumeration
#window
#explorer
#bouton_recherche
#bouton_reset
#texte_a_chercher
#liste_resultat

#window_editeur
#editeur_fichier
EndEnumeration

Structure fichier
chemin.s
position.l
EndStructure

Global NewList  liste_fichier.fichier()

#CFM_BACKCOLOR = $4000000 
#SCF_ALL = 4 
; --> Structure EditorGadget 
Structure CHARFORMAT2_ 
  cbSize.l 
  dwMask.l 
  dwEffects.l 
  yHeight.l 
  yOffset.l 
  crTextColor.l 
  bCharSet.b 
  bPitchAndFamily.b 
  szFaceName.b[#LF_FACESIZE] 
  nullPad.w 
  wWeight.w 
  sSpacing.w 
  crBackColor.l 
  LCID.l 
  dwReserved.l 
  sStyle.w 
  wKerning.w 
  bUnderlineType.b 
  bAnimation.b 
  bRevAuthor.b 
  bReserved1.b 
EndStructure 
; --> début et fin de chaine 
Global editFind.FINDTEXT 
editFind\chrg\cpMin = 0  
editFind\chrg\cpMax = -1 

Global editFormat.CHARFORMAT2_ 
editFormat\cbSize = SizeOf(CHARFORMAT2_) 
editFormat\dwMask = #CFM_BACKCOLOR 
editFormat\crBackColor = RGB(128, 200, 200) 

Global defaultFormat.CHARFORMAT2_
defaultFormat\cbSize = SizeOf(CHARFORMAT2_) 
defaultFormat\dwMask = #CFM_BACKCOLOR 
defaultFormat\crBackColor = RGB(255, 255, 223)
;----- récup editor change color
Procedure Editor_BackColor(Gadget, Color.l) 
  format.CHARFORMAT2_ 
  format\cbSize = SizeOf(CHARFORMAT2_) 
  format\dwMask = $4000000  ; = #CFM_BACKCOLOR 
  format\crBackColor = Color 
  SendMessage_(GadgetID(Gadget), #EM_SETCHARFORMAT, #SCF_SELECTION, @format) 
EndProcedure

Procedure Editor_Select(Gadget, LineStart.l, CharStart.l, LineEnd.l, CharEnd.l)    
  sel.CHARRANGE 
  sel\cpMin = SendMessage_(GadgetID(Gadget), #EM_LINEINDEX, LineStart, 0) + CharStart - 1 
  
  If LineEnd = -1 
    LineEnd = SendMessage_(GadgetID(Gadget), #EM_GETLINECOUNT, 0, 0)-1 
  EndIf 
  sel\cpMax = SendMessage_(GadgetID(Gadget), #EM_LINEINDEX, LineEnd, 0) 
  
  If CharEnd = -1 
    sel\cpMax + SendMessage_(GadgetID(Gadget), #EM_LINELENGTH, sel\cpMax, 0) 
  Else 
    sel\cpMax + CharEnd - 1 
  EndIf 
  SendMessage_(GadgetID(Gadget), #EM_EXSETSEL, 0, @sel) 
EndProcedure 

; Set the Text color for the Selection 
; in RGB format 
Procedure Editor_Color(Gadget, Color.l) 
  format.CHARFORMAT 
  format\cbSize = SizeOf(CHARFORMAT) 
  format\dwMask = #CFM_COLOR 
  format\crTextColor = Color 
  SendMessage_(GadgetID(Gadget), #EM_SETCHARFORMAT, #SCF_SELECTION, @format) 
EndProcedure 

; Set Font Size for the Selection 
; in pt 
Procedure Editor_FontSize(Gadget, Fontsize.l) 
  format.CHARFORMAT 
  format\cbSize = SizeOf(CHARFORMAT) 
  format\dwMask = #CFM_SIZE 
  format\yHeight = FontSize*20 
  SendMessage_(GadgetID(Gadget), #EM_SETCHARFORMAT, #SCF_SELECTION, @format) 
EndProcedure 

; Set Font for the Selection 
; You must specify a font name, the font doesn't need 
; to be loaded 
Procedure Editor_Font(Gadget, FontName.s) 
  format.CHARFORMAT 
  format\cbSize = SizeOf(CHARFORMAT) 
  format\dwMask = #CFM_FACE 
  PokeS(@format\szFaceName, FontName) 
  SendMessage_(GadgetID(Gadget), #EM_SETCHARFORMAT, #SCF_SELECTION, @format) 
EndProcedure 

; Set Format of the Selection. This can be a combination of 
; the following values: 
; #CFM_BOLD 
; #CFM_ITALIC 
; #CFM_UNDERLINE 
; #CFM_STRIKEOUT 
Procedure Editor_Format(Gadget, Flags.l) 
  format.CHARFORMAT 
  format\cbSize = SizeOf(CHARFORMAT) 
  format\dwMask = #CFM_ITALIC|#CFM_BOLD|#CFM_STRIKEOUT|#CFM_UNDERLINE 
  format\dwEffects = Flags 
  SendMessage_(GadgetID(Gadget), #EM_SETCHARFORMAT, #SCF_SELECTION, @format) 
EndProcedure 
; -------------------------------------------------------------
Procedure InsertEditorText(gadget,Text$) 
  ProcedureReturn SendMessage_(GadgetID(gadget),#EM_REPLACESEL,0,Text$) 
EndProcedure

Procedure scroll_editor(gadget,valeur)
  SendMessage_(GadgetID(gadget),#EM_LINESCROLL,0,valeur)
EndProcedure

Procedure findtext(gadget.l,textToFind$) 
  ; --> Reset search to beginnng 
  SendMessage_(GadgetID(gadget), #EM_SETSEL, 0, 0) 
  ; --> For resetting to default text 
  SendMessage_(GadgetID(gadget), #EM_SETCHARFORMAT, #SCF_ALL, defaultFormat) 
  ; --> Split the seaarch words 
  spaces = CountString(textToFind$, " ")  
  For i = 1 To spaces+1 
    editFind\chrg\cpMin = 0 
    thisFind$ = StringField(textToFind$, i, " ") 
    editFind\lpstrText = @thisFind$ 
    Repeat 
      found = SendMessage_(GadgetID(gadget), #EM_FINDTEXT, #FR_DOWN, editFind) 
      If found > -1 
        editFind\chrg\cpMin = found+1 
        ; --> Set the selection to colorize 
        SendMessage_(GadgetID(gadget), #EM_SETSEL, found, found + Len(thisFind$))  
        ; --> Colorize selection background 
        SendMessage_(GadgetID(gadget), #EM_SETCHARFORMAT, #SCF_SELECTION | #SCF_WORD, editFormat) 
      EndIf 
    Until found = -1 
  Next i 
  SendMessage_(GadgetID(gadget), #EM_SETSEL, 0, 0) 
EndProcedure

;-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-**-**-*-**-*-*-*-*-*-*-
Procedure scan(fichier.s,texte$)
chaine$ = ""
compteur_ligne = 0
switch_color = 0
find_chaine = 0
AddGadgetItem(#liste_resultat,-1,fichier)

AddElement(liste_fichier())
liste_fichier()\chemin = fichier
liste_fichier()\position = CountGadgetItems(#liste_resultat)-1

SetGadgetItemColor(#liste_resultat,CountGadgetItems(#liste_resultat)-1,#PB_Gadget_BackColor,RGB(255, 201, 132),0)

  If ReadFile(0, fichier)
    While Eof(0) = 0         
      chaine$ = ReadString(0)
      If FindString(LCase(chaine$), texte$, 1)
        AddGadgetItem(#liste_resultat,-1,chaine$+Chr(10)+Str(compteur_ligne))
        find_chaine = 1
        If switch_color = -1
          SetGadgetItemColor(#liste_resultat,CountGadgetItems(#liste_resultat)-1,#PB_Gadget_BackColor,RGB(228, 237, 255),-1)
        EndIf        
        switch_color = Abs(switch_color)-1       
      EndIf
      compteur_ligne+1
    Wend
  
    CloseFile(0)
  Else
    MessageRequester("STIF", "Lecture du fichier impossible", 0)
  EndIf
If find_chaine = 0
  AddGadgetItem(#liste_resultat,-1,"----- Pas de résultat -----")
EndIf  
EndProcedure

Procedure recherche(texte.s)

For i=0 To CountGadgetItems(#explorer)-1 ;on passe tout les fichiers
  ;si c'est un fichier et qu'il est sélectionné on fait la recherche
  If GetGadgetItemState(#explorer,i) = #PB_Explorer_File|#PB_Explorer_Selected
    scan(GetGadgetText(#explorer)+GetGadgetItemText(#explorer,i),texte)  
  EndIf
Next i
EndProcedure

Procedure chargement_fichier(position.l)
num_ligne$ = GetGadgetItemText(#liste_resultat,position,1)

For i=1 To position
  texte$ = GetGadgetItemText(#liste_resultat,position-i,0)
  ForEach liste_fichier()
    If texte$ = liste_fichier()\chemin
      Break 2
    EndIf
  Next
Next i
OpenWindow(#window_editeur,100,100,800,600,liste_fichier()\chemin,#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
  EditorGadget(#editeur_fichier,8,8,784,584)
;lecture du fichier

  If ReadFile(0, liste_fichier()\chemin)
    While Eof(0) = 0         
      chaine$ = ReadString(0)
      AddGadgetItem(#editeur_fichier,-1,chaine$)
    Wend  
    CloseFile(0)
    debut_texte = FindString(GetGadgetItemText(#liste_resultat,position,0),GetGadgetText(#texte_a_chercher),0)
    findtext(#editeur_fichier,GetGadgetText(#texte_a_chercher))
    Editor_Select(#editeur_fichier,Val(num_ligne$),1,Val(num_ligne$),-1)
    Editor_BackColor(#editeur_fichier,RGB(255,200,100))
    Editor_Select(#editeur_fichier,0,0,0,0)    
    scroll_editor(#editeur_fichier,Val(num_ligne$)-CountGadgetItems(#editeur_fichier)+10)
  Else
    MessageRequester("STIF", "Lecture du fichier impossible", 0)
  EndIf
  fin =0
  Repeat
    event = WaitWindowEvent()
    Select event
      Case #PB_Event_CloseWindow
        choix = MessageRequester("Sauvegarde","Voulez vous enregistrer le fichier",#PB_MessageRequester_YesNo)
        If choix = #PB_MessageRequester_Yes
          fichier$ = SaveFileRequester("Sauvegarde du fichier",liste_fichier()\chemin+".copy", "",0)
          If fichier$ <> ""
            If OpenFile(0,fichier$)
              For i=0 To CountGadgetItems(#editeur_fichier)-1
                ;chaine$ = Right(GetGadgetItemText(#editeur_fichier,i),(Len(GetGadgetItemText(#editeur_fichier,i))-11))
                chaine$ = GetGadgetItemText(#editeur_fichier,i)
                WriteStringN(0,chaine$)           
              Next i
              CloseFile(0)
            EndIf 
          EndIf      
        EndIf
        fin = 1
        FreeGadget(#editeur_fichier)
        CloseWindow(#window_editeur)
    EndSelect  
  Until fin = 1
EndProcedure

  If OpenWindow(#window, 0, 0, 1000, 768, "STIF - Searc Text In File", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)  
    ExplorerListGadget(#explorer, 8, 8, 450, 755, "*.*", #PB_Explorer_MultiSelect)
    RemoveGadgetColumn(#explorer,3)
    SetGadgetItemAttribute(#explorer,0,#PB_Explorer_ColumnWidth,250)
    ButtonGadget(#bouton_recherche,890,8,60,20,"Recherche")
    ButtonGadget(#bouton_reset,930,80,60,20,"Clear liste")
    StringGadget(#texte_a_chercher,470,8,400,20,"")
    ListIconGadget(#liste_resultat,470,50,450,705,"Fichier",350)
    AddGadgetColumn(#liste_resultat,1,"Ligne",100)
    
    Repeat 
      event = WaitWindowEvent()
        Select event
          Case #PB_Event_Gadget
            Select EventGadget()
              Case #bouton_recherche
                If GetGadgetState(#explorer)<>-1
                  recherche(GetGadgetText(#texte_a_chercher))
                EndIf
              Case #bouton_reset
                ClearGadgetItems(#liste_resultat)
              Case #liste_resultat
                If EventType() = #PB_EventType_LeftDoubleClick
                  chargement_fichier(GetGadgetState(#liste_resultat))
                EndIf
            EndSelect
        EndSelect     
    Until  event = #PB_Event_CloseWindow 
  EndIf
Il faut savoir rester cool et comprendre que la plupart des personnes ont des obligations, vie de famille, boulot.
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Re: gérer la couleur, la police dans un strig gadget

Message par flaith »

Bator, sort de ce corps :twisted:
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: gérer la couleur, la police dans un strig gadget

Message par dayvid »

heu désoler pour le vilain ton :oops:
j'ai parfois tandence a faire sa

c'est pas méchant vous savez, c'est juste que des fois je suis un peut
inpatien et ennuiller, bref

mercie pour le code

sinon si qu'elle qu'un a d'autre idée, je suis vraiment près a partager

mois c'est temps si j'ésais de crée (enfin si ont veut) un logiciel de programation
simple et en français mais j'arrive pas trop

mais je serait TRES INTERRESSER par des sugestion, des éxemple, etc, merci d'avence
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
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: gérer la couleur, la police dans un strig gadget

Message par Ar-S »

Salut dayvid regarde dans la section Debutant/Tutorial
Le numéro 38 - Le format RTF pour les nuls

il y a des exemples et tout ce qu'il faut pour colorer un texte comme tu l'entends.

Pitié, relie toi et améliore ton orthographe, vraiment ça ne donne pas envie de te répondre tellement tu écris comme un sagouin.
Ta première phrase ne contient aucune faute (si ce n'est l'accent sur le a de voilà mais je ne vais du tout chipoter pour ça),
ça signifie que tu sais écrire correctement si tu prends le temps de te relire. Donc en écrivant ensuite comme un sale, cela montre 2 choses :
- L'envi de trouver une solution rapide à tes problèmes (ce qui est une bonne chose)
- Ton impatience => et ça te concerne, on s'en fout..
- Un manque de respect envers tes interlocuteurs => ça on s'en fout moins...

Donc je te le redemande encore une fois, sans méchanceté, relie toi avant de poster des phrases qui en deviennent presque incompréhensible.
c'est la dernière fois que je répondrai à des phrases si mal écrites...
~~~~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
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: gérer la couleur, la police dans un strig gadget

Message par dayvid »

ok, ok sa marche, je vais faire des éffors pour sa
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