Couleures dans un EditorGadget
-
- Messages : 293
- Inscription : sam. 24/janv./2004 12:00
- Localisation : Toulouse (31)
- Contact :
Couleures dans un EditorGadget
Salut,
je voudrais savoir si c'est possible de faire une colorisation syntaxique dans un EditorGagdet ?
Merci
je voudrais savoir si c'est possible de faire une colorisation syntaxique dans un EditorGagdet ?
Merci
Débutant en programmation, notament en C++ ?
Vous souhaitez apprendre ?
Vous souhaitez apprendre ?
- Planet-DEV, le site (bientot)
- Le forum
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
certainement que oui car quand tu fais du copier coller de texte avec de la mise en forme, ça la garde dans l'éditeur gadget.
mais de la à savoir comment faire, ben j'aimerai bien moi aussi avoir la réponse
mais de la à savoir comment faire, ben j'aimerai bien moi aussi avoir la réponse
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)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
-
- Messages : 293
- Inscription : sam. 24/janv./2004 12:00
- Localisation : Toulouse (31)
- Contact :
jaPBe a été fait avec PureBASIC ? si oui alors c'est possible
Débutant en programmation, notament en C++ ?
Vous souhaitez apprendre ?
Vous souhaitez apprendre ?
- Planet-DEV, le site (bientot)
- Le forum
Oui, jaPBe est fait avec PureBasic.Aranoth a écrit :jaPBe a été fait avec PureBASIC ? si oui alors c'est possible
Pour le code source, c'est ici
Chris

-
- Messages : 293
- Inscription : sam. 24/janv./2004 12:00
- Localisation : Toulouse (31)
- Contact :
Je m'y retrouve pas dans les sources de jaPBe...



Débutant en programmation, notament en C++ ?
Vous souhaitez apprendre ?
Vous souhaitez apprendre ?
- Planet-DEV, le site (bientot)
- Le forum
Il me semble que JAPBE utilise aussi une Dll orientée gestion éditeur.
Pour les couleurs, si l'éditorgadget utilise un RichEdit il faut s'orienter vers les messages EM_SETCHARFORMAT (mettre la couleur) et EM_SETCHARFORMAT (retrouver la couleur) et remplir la/les structures CHARFORMAT et CHARFORMAT2 pour formater le texte, couleur, police etc.
Si c'est bien un RichEdit, El_Choni a fait une librairie pour les RichEdit qui pourrait peut-être fonctionner, mais je ne sais pas car je ne l'ai jamais utilisé.
Librairie dispo sur le site (exxxxxxxxxxxxxxcelent) PureArea
Pour les couleurs, si l'éditorgadget utilise un RichEdit il faut s'orienter vers les messages EM_SETCHARFORMAT (mettre la couleur) et EM_SETCHARFORMAT (retrouver la couleur) et remplir la/les structures CHARFORMAT et CHARFORMAT2 pour formater le texte, couleur, police etc.
Si c'est bien un RichEdit, El_Choni a fait une librairie pour les RichEdit qui pourrait peut-être fonctionner, mais je ne sais pas car je ne l'ai jamais utilisé.
Librairie dispo sur le site (exxxxxxxxxxxxxxcelent) PureArea
-
- Messages : 293
- Inscription : sam. 24/janv./2004 12:00
- Localisation : Toulouse (31)
- Contact :
ok merci, je met ca de coté: je verrai plus tard
Débutant en programmation, notament en C++ ?
Vous souhaitez apprendre ?
Vous souhaitez apprendre ?
- Planet-DEV, le site (bientot)
- Le forum
Ce serait intéressant d'inclure les possibilités de formattage dans l'éditor gadget.
Je me penche sur le sujet avec ce petit bout de code:
Comment faire pour que l'editorgadget lise un fichier formaté et non le formartage en plus du texte ?
Je me penche sur le sujet avec ce petit bout de code:
Code : Tout sélectionner
If OpenWindow(0,0,0,322,150,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"EditorGadget") And CreateGadgetList(WindowID(0))
EditorGadget (0,8,8,306,133,#PB_Container_Raised)
AddGadgetItem(0,-1,"Texte en couleur")
#SCF_ALL = $4
format.CHARFORMAT
format\cbSize=SizeOf(format)
format\dwMask=#CFM_COLOR
format\crTextColor=RGB(255,0,255)
SendMessage_(GadgetID(0),#EM_SETCHARFORMAT,#SCF_ALL, format)
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
-
- Messages : 293
- Inscription : sam. 24/janv./2004 12:00
- Localisation : Toulouse (31)
- Contact :
Ton code fonctionne Nico, mais comment le limiter a une portion du texte ?
Débutant en programmation, notament en C++ ?
Vous souhaitez apprendre ?
Vous souhaitez apprendre ?
- Planet-DEV, le site (bientot)
- Le forum
Un autre, j'ai remarqué que la réponse au click sur le bouton(quel que soit le programme) en général n'est pas très bonne, je ne sais pas pourquoi:
Code : Tout sélectionner
Global couleur
couleur=0
Procedure ProcedureCallback(WindowID, Message, wParam, lParam)
Resultat = #PB_ProcessPureBasicEvents
Select Message
Case #WM_Paint
Debug "ok"
If StartDrawing(WindowOutput())
Box(130, 10, 20, 20, couleur)
StopDrawing()
EndIf
EndSelect
ProcedureReturn Resultat
EndProcedure
If OpenWindow(0,0,0,300,300,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"EditorGadget") And CreateGadgetList(WindowID(0))
EditorGadget (0,10,80,250,200,#PB_Container_Raised)
ButtonGadget(1, 160, 10, 100, 20, "Choisir une couleur")
ButtonGadget(2, 20, 40, 220, 20, "Appliquer la couleur sur le texte sélectionné")
CheckBoxGadget(3, 10, 10, 40, 20, "Italic" )
CheckBoxGadget(4, 60, 10, 60, 20, "Souligné")
AddGadgetItem(0,-1,"Choisissez une couleur, puis")
AddGadgetItem(0,-1,"sélectionnez une partie du texte")
AddGadgetItem(0,-1,"et appliquez.")
SetWindowCallback(@ProcedureCallback())
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_EventGadget
Select EventGadgetID()
Case 1
couleur = ColorRequester()
If StartDrawing(WindowOutput())
Box(130, 10, 20, 20, couleur)
StopDrawing()
EndIf
Case 2
mask=#CFM_COLOR
If GetGadgetState(3)
mask=mask|#CFM_ITALIC
effect=effect|#CFE_ITALIC
EndIf
If GetGadgetState(4)
mask=mask|#CFM_UNDERLINE
effect=effect|#CFE_UNDERLINE
EndIf
format.CHARFORMAT
format\cbSize=SizeOf(format)
format\dwMask=mask
format\crTextColor=couleur
format\dwEffects=effect
SendMessage_(GadgetID(0),#EM_SETCHARFORMAT,#SCF_SELECTION, format)
EndSelect
EndSelect
Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
Personne n'a essayé d'appliquer les fonctions de la librairie de El_Choni 'RicheEdit' ? Cela peut fonctionner, sinon EL_Choni fournit avec ses lib le code assembleur de ses fonctions
Il a une fonction qui s'appelle StreamFileOut qui permet de tout sauvegarder dans un fichier RTF et la même pour charger un fichier au format RTF.
Il a une fonction qui s'appelle StreamFileOut qui permet de tout sauvegarder dans un fichier RTF et la même pour charger un fichier au format RTF.
Dernière modification par Anonyme2 le lun. 22/mars/2004 18:59, modifié 1 fois.