PureASM 1.0

Partagez votre expérience de PureBasic avec les autres utilisateurs.
erix14
Messages : 480
Inscription : sam. 27/mars/2004 16:44
Contact :

Message par erix14 »

Progi1984 a écrit :Pourras tu déposer sur le forum le résultat de tes expériences avec Scintilla ? Merci d'avance !
Le résultat de mes expériences est un éditeur style jaPBe, pour mon projet futur... VisuelPureBasic
Je ne souhaite pas pour l'instant diffusé le source avant d'avoir terminé PureASM...
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

te connaissant a travers tes exemple ici bas !
reconnaissant tes oeuvres grace au look inimitable de tes aplications
ça va surement cartonner !! ...... comme d'hab !! :lol:

en fait avant de voir tes exemples sur le forum , je me croyais bon ! :lol:


:lol: :lol:
erix14
Messages : 480
Inscription : sam. 27/mars/2004 16:44
Contact :

Message par erix14 »

Merci Dobro pour tes encouragements, j'essaierai de ne pas te décevoir :wink:
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Oh la bonne blague !
erix14
Messages : 480
Inscription : sam. 27/mars/2004 16:44
Contact :

Message par erix14 »

Progi1984 a écrit :Oh la bonne blague !
Ce code nécessite la DLL "SciLexer.dll"

Code : Tout sélectionner

#STYLE_DEFAULT          = 32
#STYLE_LINENUMBER       = 33
#SCI_STYLESETSIZE       = 2055
#SCI_STYLESETFONT       = 2056
#SCI_STYLESETFORE       = 2051
#SCI_STYLESETBACK       = 2052
#SCI_STYLECLEARALL      = 2050
#SCI_SETMARGINWIDTHN    = 2242
#SCI_INSERTTEXT         = 2003
#SCI_SETSELBACK         = 2068
#SCI_SETSELFORE         = 2067
#SCI_SETCARETFORE       = 2069
#SCI_SETCARETWIDTH      = 2188
#SCI_STARTSTYLING       = 2032
#SCI_SETSTYLING         = 2033
#SCI_MARKERDEFINE       = 2040
#SC_MARK_ARROW          = 2
#SC_MARK_ARROWDOWN      = 6
#SCI_MARKERADD          = 2043
#SCI_MARKERDELETE       = 2044
#SCI_SHOWLINES          = 2226
#SCI_HIDELINES          = 2227
#SCI_SETFOLDEXPANDED    = 2229
#SCN_MARGINCLICK        = 2010
#SCI_LINEFROMPOSITION   = 2166
#SCI_MARKERGET          = 2046
#SCI_SETINDENTATIONGUIDES=2132
#SCI_SETINDENT          = 2122
#SCI_SETFOLDFLAGS       = 2233
#SCI_SETLINEINDENTATION = 2126
#SCI_SETMARGINSENSITIVEN= 2246
#SCI_SETMARGINMASKN     = 2244
#SC_MASK_FOLDERS        = $FE000000
#SCI_SETFOLDLEVEL       = 2222
#SC_FOLDLEVELHEADERFLAG = $2000

Structure NotifyHeader
     hwndFrom.l
     idFrom.l
     code.l
EndStructure
Structure SCNotification
     NMHDR.NotifyHeader
     position.l;	// SCN_STYLENEEDED, SCN_MODIFIED, SCN_DWELLSTART, SCN_DWELLEND
     ch.l;		// SCN_CHARADDED, SCN_KEY
     modifiers.l;	// SCN_KEY
     modificationType.l;	// SCN_MODIFIED
     text.l;	      // SCN_MODIFIED
     length.l;		// SCN_MODIFIED
     linesAdded.l;    // SCN_MODIFIED
     message.l;	      // SCN_MACRORECORD
     wParam.l;	      // SCN_MACRORECORD
     lParam.l;    	// SCN_MACRORECORD
     line.l;		// SCN_MODIFIED
     foldLevelNow.l;	// SCN_MODIFIED
     foldLevelPrev.l;	// SCN_MODIFIED
     margin.l;		// SCN_MARGINCLICK
     listType.l;	// SCN_USERLISTSELECTION
     x.l;			// SCN_DWELLSTART, SCN_DWELLEND
     y.l;		// SCN_DWELLSTART, SCN_DWELLEND
EndStructure

Global hLib,hwnd,Brosse,hScintilla

Procedure WindowCallback(WindowId, message, wParam, lParam) 
     Result = #PB_ProcessPureBasicEvents
     Select message
		Case #wm_notify
               *msg.SCNotification=lParam
               If *msg\NMHDR\hwndFrom = hScintilla
                    Select *msg\NMHDR\code
                         Case #SCN_MARGINCLICK
                              If *msg\margin=1
							Ligne = SendMessage_(hScintilla,#SCI_LINEFROMPOSITION,*msg\position,0)
							Marker = SendMessage_(hScintilla,#SCI_MARKERGET,Ligne,0)
							Debug Marker
							If Marker & 1
                                        SendMessage_(hScintilla,#SCI_SETFOLDEXPANDED,0,1)
                                        SendMessage_(hScintilla,#SCI_MARKERDELETE,Ligne,0)
                                        SendMessage_(hScintilla,#SCI_MARKERADD,Ligne,1)
								SendMessage_(hScintilla,#SCI_SHOWLINES,1,6)
                                   ElseIf Marker & 2
                                        SendMessage_(hScintilla,#SCI_SETFOLDEXPANDED,0,0)
                                        SendMessage_(hScintilla,#SCI_MARKERDELETE,Ligne,1)
                                        SendMessage_(hScintilla,#SCI_MARKERADD,Ligne,0)
								SendMessage_(hScintilla,#SCI_HIDELINES,1,6)
                                   EndIf
                              EndIf
                    EndSelect
               EndIf
     EndSelect
     ProcedureReturn Result 
EndProcedure

hLib = OpenLibrary(1,"SciLexer.dll") 
hwnd = OpenWindow(0,0,0,600,400,#PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_Invisible,"Scintilla") 
SetWindowCallback(@WindowCallback())
If hLib 
     hInstance = GetModuleHandle_(0) 
     hScintilla = CreateWindowEx_(0, "Scintilla"," ", #WS_CHILD|#WS_VISIBLE|#WS_TABSTOP,10,10,580,380,hwnd,0,hInstance,0) 
Else
     MessageRequester( "Erreur Scintilla", "La DLL n'est pas chargé.", #MB_OK | #MB_ICONERROR)
     End
EndIf 
Brosse = CreateSolidBrush_(RGB(55, 82, 55))
SetClassLong_(WindowID(0), #GCL_HBRBackGround, Brosse)
SendMessage_(hScintilla,#SCI_STYLESETFONT,#STYLE_DEFAULT,"Verdana")
SendMessage_(hScintilla,#SCI_STYLESETSIZE,#STYLE_DEFAULT,12)
SendMessage_(hScintilla,#SCI_STYLESETFORE,#STYLE_DEFAULT,RGB(250,250,250))
SendMessage_(hScintilla,#SCI_STYLESETBACK,#STYLE_DEFAULT,RGB(40,40,80))
SendMessage_(hScintilla,#SCI_STYLECLEARALL,0,0)
SendMessage_(hScintilla,#SCI_STYLESETFORE,1,RGB(0,250,0))
SendMessage_(hScintilla,#SCI_STYLESETFORE,2,RGB(0,250,250))
SendMessage_(hScintilla,#SCI_STYLESETFORE,3,RGB(250,250,0))
SendMessage_(hScintilla,#SCI_STYLESETFORE,4,RGB(250,100,0))
SendMessage_(hScintilla,#SCI_STYLESETBACK,#STYLE_LINENUMBER,RGB(80,80,160))
SendMessage_(hScintilla,#SCI_STYLESETFORE,#STYLE_LINENUMBER,RGB(250,250,250))
SendMessage_(hScintilla,#SCI_SETMARGINWIDTHN,0,30);  Affiche les numero des lignes
SendMessage_(hScintilla,#SCI_SETSELBACK,#True,RGB(0,100,150)); Détermine la couleur de fond de la sélection
SendMessage_(hScintilla,#SCI_SETSELFORE,#False,0); La couleur du texte sélectionné est inchangée
SendMessage_(hScintilla,#SCI_SETCARETFORE,RGB(250,200,100),0); Couleur du curseur
SendMessage_(hScintilla,#SCI_SETCARETWIDTH,2,0); Largeur du curseur
SendMessage_(hScintilla,#SCI_SETINDENTATIONGUIDES,#True,0) ; Affiche le guide d'indentation
SendMessage_(hScintilla,#SCI_SETINDENT,8,0) ; Détermine la longueur de la tabulation

Texte$ = "Ouvre le PLIAGE pour voir ma REPONSE..."+Chr(13)
Texte$ + "Je ne vois pas en quoi s'est"+Chr(13)
Texte$ + "une blague ?"+Chr(13)
Texte$ + "Si c'est une ruse pour obtenir du code,"+Chr(13)
Texte$ + "elle est de mauvais goût..."+Chr(13)
Texte$ + "Forcer quelqu'un à te donner son code en l'agressant,"+Chr(13)
Texte$ + "ce n'est pas bien... et te fera du tort..."+Chr(13)
Texte$ + "Fin de la REPONSE"

SendMessage_(hScintilla,#SCI_INSERTTEXT,-1,Texte$)
For t=1 To 6
     SendMessage_(hScintilla,#SCI_SETLINEINDENTATION,t,8)
Next
SendMessage_(hScintilla,#SCI_SETLINEINDENTATION,2,16)
SendMessage_(hScintilla,#SCI_SETLINEINDENTATION,4,16)
SendMessage_(hScintilla,#SCI_SETLINEINDENTATION,6,16)

SendMessage_(hScintilla,#SCI_STARTSTYLING,9,$FF)
SendMessage_(hScintilla,#SCI_SETSTYLING,6,1)
SendMessage_(hScintilla,#SCI_STARTSTYLING,29,$FF)
SendMessage_(hScintilla,#SCI_SETSTYLING,7,2)
SendMessage_(hScintilla,#SCI_STARTSTYLING,40,$FF)
SendMessage_(hScintilla,#SCI_SETSTYLING,212,3)
SendMessage_(hScintilla,#SCI_STARTSTYLING,266,$FF)
SendMessage_(hScintilla,#SCI_SETSTYLING,7,4)

SendMessage_(hScintilla,#SCI_SETMARGINSENSITIVEN,1,#True)
SendMessage_(hScintilla,#SCI_SETMARGINMASKN,1,~#SC_MASK_FOLDERS)
SendMessage_(hScintilla,#SCI_MARKERDEFINE,0,#SC_MARK_ARROW)
SendMessage_(hScintilla,#SCI_MARKERDEFINE,1,#SC_MARK_ARROWDOWN)

SendMessage_(hScintilla,#SCI_SETFOLDFLAGS,16,0)
SendMessage_(hScintilla,#SCI_SETFOLDLEVEL,0,#SC_FOLDLEVELHEADERFLAG)
SendMessage_(hScintilla,#SCI_MARKERADD,0,0)
SendMessage_(hScintilla,#SCI_HIDELINES,1,6); Cacher des lignes
SendMessage_(hScintilla,#SCI_SETFOLDEXPANDED,0,0)

HideWindow(0,0)
Repeat 
     message = WaitWindowEvent()
     Select  message
          Case #PB_Event_CloseWindow
               DeleteObject_(Brosse)
               End 
     EndSelect 
ForEver
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

erix14 a écrit :Merci Dobro pour tes encouragements, j'essaierai de ne pas te décevoir :wink:
je disais "Oh le bonne blague" quand tu a dis cela car essayer de ne pas le décevoir avec ton niveau, je pense que cela risque d'être dur !
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

c'etait tout a son honneur (a erix14) !! :wink:

que ce soit moi qui lui fasse remarquer, passe encore
(je me serai mem pas permis , j'aprecie beaucoup le travail de Erix14
que je considere ici comme un Extra terrestre de la prog )

bien que je sache le niveau de erix14 , il avait pas besoin de preciser ! :D


en fait ! comment doit-je prendre ce que tu dit TOA !!

sous entend tu, que je suis un minable a comparer de erix14 ?
que meme peut etre fait-je partie des plus nul ici ?


en clair et sans décodeur , tu me cherche ?
Dernière modification par Backup le dim. 22/mai/2005 17:26, modifié 1 fois.
erix14
Messages : 480
Inscription : sam. 27/mars/2004 16:44
Contact :

Message par erix14 »

OK :D
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

:lol: :D
Dernière modification par Backup le dim. 22/mai/2005 21:39, modifié 1 fois.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Non, je ne voulais pas dire cela ! je m'excuse encore de ma phrase qui a mal été comprise !
Je souhaitais juste dire que Erix14 n'a plus besoin de nous montrer son niveau car on le connait, comme toi aussi et de nombreux autres, denis, cederavic, etc....
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

ha ! ben j'me disais aussi ! :D :lol: :lol:

tu m'a fait douter un moment ! :D
erix14
Messages : 480
Inscription : sam. 27/mars/2004 16:44
Contact :

Message par erix14 »

Denis et moi avons fait quelques petites améliorations, voici la version 2 bêta 8 : http://home.tele2.fr/erix14/PureASM.htm
Maintenant PureASM peut être traduit en plusieurs langues grâce à des fichiers textes :D pour l'instant seul le français est l'anglais sont disponibles.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Intégre-t-il dés lors Scintila ?
erix14
Messages : 480
Inscription : sam. 27/mars/2004 16:44
Contact :

Message par erix14 »

Progi1984 a écrit :Intégre-t-il dés lors Scintila ?
Non, j'avais commencé avec le RichEdit, je le terminerai avec le RichEdit.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Ca en est ou ?
Répondre