| Utilisation des fonctions SYNEDIT dans KGF | |
|
|
Auteur | Message |
---|
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Utilisation des fonctions SYNEDIT dans KGF Sam 13 Juin 2015 - 10:29 | |
| Bonjour a tous ! Je voulait tester les fonctions de synédit dans KGF pour essayer la coloration syntaxique avec un mot clé pour voir comment cela fonctionné. Mais je bute sur quelque choses... Je pense que la doc n'est pas correcte et m'induit en erreur. Ou bien cela viens de moi, car je n'ai pas bien compris. Voila le petit programme de test. Les lignes avec ' me posent problème. toujours d'après la doc... - Code:
-
DIM res% , SE% , style$ , couleur$ DIM fun% , par1$ , par2$
DLL_ON "D:\BASIC\DLLs\KGF.dll" fun%=4 style$ = "1100" couleur$ = "Bleu"
width 0,800 : height 0,400 EDIT 10 : HIDE 10 MEMO 20 : HIDE 20
ITEM_ADD 20,"mot_en_couleur"
res% = dll_call0("SyneditInitialize")
SE% = dll_call2("SyneditCreate",handle(0),handle(10))
res% = dll_call5("SyneditGeometry",SE%,0,0,700,350)
res% = dll_call3("SyneditFunction",SE%,4,HANDLE(20))
' ??????????????????? ' res% = dll_call4("SyneditConfigureHighlighter",SE%,3,par1$,par2$) ' res% = dll_call4("SyneditConfigureHighlighter",SE%,fun%,style$,couleur$)
END Dites moi ou j'ai fait une erreur, ou j'ai oublié quelque chose. c'est sur ! | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Sam 13 Juin 2015 - 10:59 | |
| J'avais répondu à ton message interne, mais la messagerie a du mal à fonctionner. Donc, voici ma réponse, cette fois sur le forum: Je reconnais que c'est complexe. Mais regarde le code suivant, puis compare avec la doc: - Code:
-
DIM res% , SE% , style$ , couleur$, syntaxe$
label synedit_event
DLL_ON "KGF.dll"
width 0,800 : height 0,400 EDIT 10 : HIDE 10 : ON_CHANGE 10,synedit_event MEMO 20 : HIDE 20
ITEM_ADD 20,"mot_en_couleur" : ' seul mot clé pour tester pour l'instant
res% = dll_call0("SyneditInitialize")
SE% = dll_call2("SyneditCreate",handle(0),handle(10))
res% = dll_call5("SyneditGeometry",SE%,0,0,700,350)
syntaxe$ = "Panoramic" res% = dll_call3("SyneditFunction",SE%,5,adr(syntaxe$)) : ' changer de syntaxe
res% = dll_call4("SyneditConfigureHighlighter",SE%,3,handle(20),0) : ' charger la liste des mots-clé
couleur$ = "Bleu" : ' couleur bleue pour le mot_clé style$ = "gi" : ' gras et italique pour le mot'clé res% = dll_call4("SyneditConfigureHighlighter",SE%,4,adr(style$),adr(couleur$))
END
synedit_event:
RETURN L'important, c'est de choisir une syntaxe. Or, deux syntaxes uniquement permettent de choisir les mots-clé: Panoramic et General. Donc, il y a un choix à faire... | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Sam 13 Juin 2015 - 11:30 | |
| Merci pour ta réponse et ta disponibilité. Je regarde dans la journée et je te tiens au courant. PS : pour le mp, je n'ai rien reçu, désolé. | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Sam 13 Juin 2015 - 11:58 | |
| Je viens regarder rapidement. j'ai réussi a faire fonctionner tout ça. J'ai bien compris le principe. merci Klaus ! Donc en résumé, les 2 lignes ci_dessous sont obligatoires : syntaxe$ = "Panoramic" res% = dll_call3("SyneditFunction",SE%,5,adr(syntaxe$)) : ' changer de syntaxeet dans syntaxe$ on doit impérativement mettre Panoramic ou General. C'est bien ca non ?? Mais pourquoi cette gymnastique ? j'imagine que c'est a cause de la base de synédit ? Autre question, concernant 'SyneditGeometry', est_il possible de mettre la fenêtre en 'FULL_SPACE' comme les objets de Panoramic ? Merci d'avance pour ta réponse PS : Une autre question, peut on mettre les mots clé en MAJUSCULE ? | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Sam 13 Juin 2015 - 12:38 | |
| - Citation :
- dans syntaxe$ on doit impérativement mettre Panoramic ou General.
C'est bien ca non ??
Mais pourquoi cette gymnastique ? j'imagine que c'est a cause de la base de synédit ? C'est bien ça. Synedit est conçu pour fonctionner avec une trentaine de syntaxes différentes (voir la fonction SyneditFunction, code 4, qui retourne la liste des syntaxes disponibles dans un mémo). Par défaut, aucune syntaxe n'est sélectionnée, et donc la coloration ne peut pas marcher. Toutes les syntaxes sauf les deux mentionnées, sont une configuration fixe que tu ne peux pas changer. La seule syntaxe "ouverte" fournie avec Synedit (je rappelle que d'est un produit SourceForge, à prendre tel quel...) est "General". Elle est prévu pour qu'on puisse définir sa propre syntaxe. J'en ai dérivé la syntaxe "Panoramic", tout en lui gardant son caractère "ouvert", pour tenir compte de l'évolutivité de Panoramic. Donc, oui, il faut absolument choisir une de ces deux syntaxes. - Citation :
- Autre question, concernant 'SyneditGeometry', est_il possible de mettre la fenêtre en 'FULL_SPACE' comme les objets de Panoramic ?
L'objet EDIT attaché au Synedit reçoit des textes déclenchant son évènement ON_CHANGE. Tous ces textes commencent par une lettre indiquant l'action. La lettre "M" indique un évènement MoveSize de Windows. Ceci veut dire que la fenêtre contenant le Synedit a été redimensionnée, soit en minimisant ou maximisant, soit en modifiant la taille en tirant on de ses bords ou coins. Dans ce cas (ou selon tes propres critères), tu peux utiliser - Code:
-
dim m1% : m1% = 0-1 res% = dll_call5("SyneditGeometry",SE%,m1%,m1%,m1%,m1%)
Ceci adapte automatiquement le Synedit en full_space. Mais je constate que cette information manque dans la doc ! Je vais donc la compléter. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Sam 13 Juin 2015 - 12:57 | |
| Ca y est - la doc est mise à jour: sur mon site, sur le WebDav et la doc en ligne. | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Sam 13 Juin 2015 - 13:59 | |
| Merci Klaus. Et pour la question des Majuscules dans les mots clé ? y a t 'il une solution ? est il possible de créer une règle ou par programmation tout en restant rapide ? | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Sam 13 Juin 2015 - 14:24 | |
| | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Sam 13 Juin 2015 - 14:40 | |
| Heuuu, je ne comprends pas...
En fait je voudrais lors de la frappe au clavier d'un mot clé, qu'il apparaisse automatiquement en majuscule.
Par exemple si je tape print, il le transforme en PRINT automatiquement. Crois tu que se soit possible ? | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Sam 13 Juin 2015 - 15:20 | |
| Non. Ca ne fait pas partie des fonctions de Synedit. | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Sam 13 Juin 2015 - 16:33 | |
| Tu dois le faire toi même et c'est assez complexe à mettre en oeuvre. Pour ne pas trop ralentir ton éditeur, tu dois vérifier à certain moment (par exemple quand tu n'est pas dans la saisie d'une chaine de caractères, lorsque tu appuie sur espace, tu vérfies le mot d'avant et si s'en est un, tu le remplaces dans la chaine correspondant à ta ligne). C'est un travail très lourd, c'est pour ça que nos concepteurs d'editeur ont plutôt opté pour la possibilité de lancer un outil de vérifiation et de mise en forme en fin de saisie ou sur demande de l'utilisateur
| |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Sam 13 Juin 2015 - 16:42 | |
| D'autant que c'est en lien avec la présentation générale du code - indentation, insertion de lignes blanches pour séparer des sections significatives, etc. Difficile à ce niveau de faire quelque chose de général - ça dépend surtout du goût de chacun. C'est pourquoi un utilitaire de mise en forme est certainement le meilleur choix. D'autant qu'il peut être lancé par un clc sur un bouton ou un menu, soit en programme séparé, soit en tâche de traitement intégrée dans l'éditeur qu'on est en train de concevoir. C'est un peu ce que je fais avec le pliage/dépliage de code - je l'ai codé moi-même, cette fonction de faisant pas partie des possibilités offertes par Synedit ! | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Sam 13 Juin 2015 - 18:15 | |
| OK ! je me douté bien de la façon de faire.
Par contre, je suis pour l'instant encore en train de comprendre comment voir ou je suis dans l'éditeur (ligne colonne..).
Mais j'avance... c'est pas simple, mais j'avance... c'est vraiment d'un gros morceau ce synedit, difficile parfois a appréhender mais tellement de possibilité aussi...
merci encore a tous les deux. | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Dim 14 Juin 2015 - 9:28 | |
| Bonjour Klaus !
J'imagine que le codage des couleurs, c'est pareil, c'est lié a l'usage de synédit. et que l'on ne peut pas utiliser n'importe quelles couleurs ? | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Dim 14 Juin 2015 - 9:34 | |
| Exact. Voici la liste des noms de couleurs utilisables: - Citation :
- Noir
Eau Bleu Crème Gris foncé Gris Vert Citron Gris clair Marron Gris moyen Vert menthe Bleu marine Vert olive Violet Rouge Argent Bleu ciel Fuschia Canard Blanc Jaune
Ceci est extrait de KGF.chm, section "Objets", objet "Synedit", paragraphe "Couleurs standard". Cette table donne également les valeurs RGB correspondantes, pour info. Mais les couleurs sont bien sélectionnées par une chaîne de caractères contenant le nom de la couleur. | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Dim 14 Juin 2015 - 9:37 | |
| merci Klaus Je voulais juste m'en assuré. La documentation est conforme. | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Dim 14 Juin 2015 - 19:14 | |
| Klaus au secours !!!! Je tente de faire fonctionner SyneditFunction : Fonction 23 et 26 , mais cela ne fonctionne pas... Y a t il un appel particulier ou est ce que ce n'est pas possible avec l'option Panoramic ? | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Dim 14 Juin 2015 - 21:57 | |
| Après plusieurs tatonnements je viens de trouver !!! Klaus, tu pourras rajouter sur la doc pour les fonction 23 et 26 : 1) Qu'il faut utiliser la formule : coul%=(((256*b%)+v%)*256)+r% sur le calcul de la couleur 2) Qu'il faut mettre directement la valeur de coul% (sans mettre ADR() ) res% = dll_call3("SyneditFunction",S2%,26,coul%) A par cela, tout a l'air de bien fonctionner. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Dim 14 Juin 2015 - 22:57 | |
| D'accord, je vais ajouter une info de ce genre. Ca me semblait clair pourtant: "valeur RGB"... Ce n'est pas une chaîne de caractères, donc pas de ADR(), et c'est une "valeur", donc un entier Panoramic... Enfin, je vais l'ajouter. Mais tant mieux si tu l'as trouvé ! | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Lun 15 Juin 2015 - 0:31 | |
| C'est surtout la méthode de calcul de la couleur : (((256*b%)+v%)*256)+r% Moi je cherchais un truc du genre "255255255" comme pour les autres couleurs... Mais c'est vrai qu'avec un peu de recul ca semble logique puisqu'il s'agit d'une valeur... Enfin bref, le principal, c'est que ca fonctionne ! Il faut reconnaitre que je ne maitrise pas encore complétement les DLL et leurs usages, donc je suis parfois un peu perdu. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Lun 15 Juin 2015 - 1:14 | |
| La doc de SyneditFunction a été actualisée, dans KGF.chm et dans l'aide en ligne. | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Lun 15 Juin 2015 - 8:06 | |
| merci Klaus Bonne journée. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Mer 17 Juin 2015 - 18:56 | |
| J'ai mis une nouvelle version de KGF.dll en ligne, avec un code fonction 33 pour SyneditFunction pour effacer l'ensemble du contenu du Synedit visé. Le dernier paramètre de la fonction n'est pas utilisé dans ce cas et peut être passé comme 0.
La doc est à jour, y compris la doc en ligne. | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF Mer 17 Juin 2015 - 22:36 | |
| Merci Klaus !
Je vais mettre a jour... | |
|
| |
Contenu sponsorisé
| Sujet: Re: Utilisation des fonctions SYNEDIT dans KGF | |
| |
|
| |
| Utilisation des fonctions SYNEDIT dans KGF | |
|