Page 8 sur 17

Publié : dim. 06/nov./2005 9:21
par erix14
Voici le code pour que Colorer fasse la différence entre du texte et autres choses :

     Case #WM_DRAWCLIPBOARD ;{
       If PressePapierPlein = #Vide
          PriList = #CF_TEXT
          If GetPriorityClipboardFormat_(@PriList, 1) = #CF_TEXT
               PressePapierPlein = #Plein
                PlaySound (0,0)
               InvalidateRect_(WindowID,RectImage1, #True )
           EndIf
       EndIf ;}
Dobro, ce serait bien si tu changeais de méthode pour trouver les mots, recherche les séparateurs... Car la procédure GetPriorityClipboardFormat est resorti en trois morceaux :cry:

Dans les médias il y a un icône que j'ai créée pour Colorer, il suffit de lier cette icône au projet pour qu'il apparaisse dans la barre des tâches :D

Publié : dim. 06/nov./2005 10:12
par Backup
Dobro, ce serait bien si tu changeais de méthode pour trouver les mots, recherche les séparateurs..
impossible ! car certains ecrivent "ImageID()" d'autres "ImageID ()"
(voir l'espace entre la fonction et les parentheses )

d'autre part dans des cas comme

Code : Tout sélectionner

hBKBrush = CreatePatternBrush_(ImageID())
ya pas d'espace pour les fonctions qui font partie des parametres
comme

Code : Tout sélectionner

StartDrawing(SpriteOutput(sprite) ) 
bref trop de disparité !!
le probleme que tu souleve est lié a l'emplois de termes existants (fonctions, ordre basic) dans le nom ,d'une variable , ou d'une API

pour les API c'est faisable car les API termine par le charactere "_("
il suffit de faire une recherche de la presence de "_(" pour etre sur qu'on a affaire a une API tout du moins en utilisation normale !

en d'autres termes , colorer pourra toujours se faire pieger :D

ma methode de recherche est a mon avis la plus efficace pour l'instant !
(mais vous pouvez me demontrer le contraire :D)

pour les API je vais rajouter le test .... :D

Publié : dim. 06/nov./2005 10:56
par Backup
Dobro, ce serait bien si tu changeais de méthode pour trouver les mots, recherche les séparateurs..
je suis peut etre sur une solution ! :D

Publié : dim. 06/nov./2005 11:32
par erix14
C'est pourtant pas bien compliqué :D

Procedure.b IsSepare(Car.b)
      If Car=' ' Or Car=',' Or Car='(' Or Car=')' Or Car='[' Or Car=']' Or Car='\' Or Car='/' Or Car='*' Or Car='=' Or Car='+' Or Car='-' Or Car=9 Or Car=34
           ProcedureReturn #True
      Endif
      ProcedureReturn #False
EndProcedure
Procedure AfficheMot(Mot$)
     Mot2$ = UCase (Mot$)
      If Mot2$ = "IF"
           Debug Mot$+" <- PureBasic "
      ElseIf Mid(Mot$, Len (Mot$),1) = "_"
           Debug Mot$+" <- API "
      Else
           Debug Mot$
      Endif
EndProcedure
Procedure AfficheLesMots(*ptr.BYTE)
     Mot$ = ""
      While *ptr\b
           If IsSepare(*ptr\b)
                If Len (Mot$)
                    AfficheMot(Mot$)
                Endif
               Mot$ = ""
           Else
               Mot$ + Chr (*ptr\b)
           Endif
          *ptr + 1
      Wend
      If Len (Mot$)
          AfficheMot(Mot$)
      Endif
EndProcedure

AfficheLesMots(@"If GetPriorityClipboardFormat_(@PriList, 1) = #CF_TEXT")

Publié : dim. 06/nov./2005 19:59
par Backup
C'est pourtant pas bien compliqué


bien sur ! bien sur ! :?

j'ai passé mon apres midi a chercher un equvalent ,je me suis pris la tete
et au final !! ......... rien, nada , von je vais me ranger a ta science, en utilisant le code Parfait , que tu nous a genereusement offert, dans ta grande bontée ; je me prosterne bien bas , je t'en veux un peut
car tu ma fait comprendre que la prog c'est pas mon truc ...
mon truc , c'est rien faire ! ... (et encore ça emmerde mes voisins ) :?


bon a moins que tu ne l'ai deja fait , je vais donc inserer ton code Merci encore. ...



putain l'autre il utilise les pointeurs et tout et tout .. pfff j'y comprend rien a son code en plus , y m'enerve ! y m'enerve ! y m'enerve !! :mad:

Publié : dim. 06/nov./2005 20:25
par comtois
putain l'autre il utilise les pointeurs et tout et tout .. pfff j'y comprend rien a son code en plus , y m'enerve ! y m'enerve ! y m'enerve !! :mad:

Tiens , si tu veux remplacer le pointeur , tu peux faire comme ça .

Code : Tout sélectionner

 Procedure.b   IsSepare(Car.s)
      If Car=" " Or Car="," Or Car="(" Or Car=")" Or Car="[" Or Car="]" Or Car="\" Or Car="/" Or Car="*" Or Car="=" Or Car="+" Or Car="-" Or Car=Chr(9) Or Car=Chr(34)
           ProcedureReturn #True
      EndIf
      ProcedureReturn #False
EndProcedure
Procedure AfficheMot(Mot$)
     Mot2$ = UCase (Mot$)
      If Mot2$ = "IF"
           Debug Mot$+" <- PureBasic "
      ElseIf Right(Mot$,1) = "_"
           Debug Mot$+" <- API "
      Else
           Debug Mot$
      EndIf
EndProcedure
Procedure AfficheLesMots(Ligne$)
     Mot$ = ""
     a=1
     Car$=Mid(Ligne$,a,1)
      While Car$
      Car$=Mid(Ligne$,a,1)
           If IsSepare(Car$)
                If Len (Mot$)
                    AfficheMot(Mot$)
                EndIf
               Mot$ = ""
           Else
               Mot$ + Car$
           EndIf
           a + 1
      Wend
      If Len (Mot$)
          AfficheMot(Mot$)
      EndIf
EndProcedure

AfficheLesMots("If GetPriorityClipboardFormat_(@PriList, 1) = #CF_TEXT")

Publié : dim. 06/nov./2005 21:11
par erix14
je vais me ranger a ta science, en utilisant le code Parfait , que tu nous a genereusement offert
En fait, ce n'est pas le code parfait... J'utilise un autre algorithme + une optimisation en assembleur dans VisuelPureBasic. :D
Et désolé, je ne savais pas que tu avais des problèmes avec les pointeurs. :oops:

Publié : dim. 06/nov./2005 23:23
par Backup
Et désolé, je ne savais pas que tu avais des problèmes avec les pointeurs
pas specialement , c'est vrais que je les utilises peut !!

j'ai souvenance d'une instruction basic ,"Varptr()" , il me semble que les pointeurs c'est la meme chose ! :D

ma phrase ecrite en tout petit, etait humouristique ... hum !


(j'vais pas avouer que je suis un gros nul quand meme ) :lol:

Merci Comtois , je prends aussi ta modif ! :D

Publié : lun. 07/nov./2005 12:47
par Backup
bon j'ai quasi fini , mais je le garde encore un peut pour les tests
ça a été pas mal remanié, mais ça a l'air de vouloir tenir la route cet fois :lol:

le resultat pour bientot : :D

voici un petit appercu :




Procedure.b IsSepare(Car.s)
     If Car= " " Or Car= " , " Or Car= " ( " Or Car= " ) " Or Car= " [ " Or Car= " ] " Or Car= " \ " Or Car= " / " Or Car= " * " Or Car= " = " Or Car= " + " Or Car= " - " Or Car= Chr (9) Or Car= Chr (34)
         ProcedureReturn #True
     EndIf
     ProcedureReturn #False
EndProcedure
Procedure AfficheMot(mot$)
     Mot2$= UCase (mot$)
     If Mot2$= "IF"
         Debug mot$+ " <- PureBasic "
     ElseIf Right (mot$,1)= "_"
         Debug mot$+ " <- API "
     Else
         Debug mot$
     EndIf
EndProcedure
Procedure AfficheLesMots(ligne$)
     mot$= ""
     a=1
     car$= Mid (ligne$,a,1)
     While car$
         car$= Mid (ligne$,a,1)
         If IsSepare(car$)
             If Len (mot$)
                 AfficheMot(mot$)
             EndIf
             mot$= ""
         Else
             mot$ + car$
         EndIf
         a + 1
     Wend
     If Len (mot$)
         AfficheMot(mot$)
     EndIf
EndProcedure

AfficheLesMots( "If GetPriorityClipboardFormat_(@PriList, 1)= #CF_TEXT" )

Publié : lun. 07/nov./2005 13:40
par lionel_om
Euh...
Faudrait que ta liste des fonctions s'agrandisse quand tu trouve une déclaration de fonction.
Exemple : IsSepare() et AfficheMot() ne sont pas colorés ... :?

Publié : lun. 07/nov./2005 14:59
par Progi1984
mot$ pourrait etre colorié, cad les variables de chaines

Publié : lun. 07/nov./2005 16:32
par Backup
vu comme c'est concu maintenant on pourrra faire ce que l'on veux :D

juste 2 problems vont se poser

1 plus on ajoute de couleurs diferente, plus la taille des codes augmente serieusement , or on est limité par la taille des message sur le forum !

2 les couleurs pour diferencier sont aproximativement choisie pour "passer" sur la majorité des themes !
or certains themes ont un fond bleu sombre et d'autre un fond clair
pour passer sur tout les themes, faut aprocher le "gris" dans toutes les couleur proposé(un rouge avec des valeur aprochant le milieu de la gamme)

bref c'est deja pas evident avec 5 couleur employé actuellement
rajouter des termes avec des couleurs differentes de celle que nous avons , et qui soient compatible avec les themes du Forum, tu vas vite te rendre compte , qu'on a plus beaucoup de choix !!


ou alors faudrai que tout le monde passe sur le theme par defaut (fond clair) , seulement les gouts et les couleurs ! :D

Publié : jeu. 10/nov./2005 6:35
par Anonyme2
il y a une exe dispo à jour ?

Publié : jeu. 10/nov./2005 14:45
par Backup
un petit bug a corriger et c'est bon ! :)

Publié : jeu. 10/nov./2005 20:32
par Backup
bon excusez du retard , j'ai passé beaucoup de temps sur Ma Moto, alez-retour a Annecy, chez Kawa pour la revision
accompagné de ma petite amie, qui faisai ses premier tour de roue, avec son permis tout neuf :D
on a tout eu , Froid, Vent (tres fort) , une panne sous le premier tunel d'annecy , le plus sombre , en pleine heure de pointe les poumons en feu, bref , galere mais quel pied ! :lol:

pour en revenir au prg , j'ai tout refais , reste a voir si les APIs fonctionent
c'est la seul chose que j'ai pas regardé ! :D

voici un exemple de ce que ça donne :