IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Utilisation d'un ActiveX [WD19]


Sujet :

WinDev

  1. #1
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut Utilisation d'un ActiveX
    Bonjour,

    je suis en train d'essayer d'utiliser l'ActiveX CodeMax (zone de texte dédiée au codage informatique) dans une application Windev.

    J'avais usé et abusé de cette dernière sous VB 6.0 et elle fonctionnait vraiment très bien.

    J'ai bien réussi a la charger dans une fenêtre et a y mettre du code, mais mon idée est d'ajouter un nouveau language ( le WL) à la liste déjà existante.

    Pour les affectations simple, il n'y a pas de soucis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    AX_code>>Language = "basic"
    AX_code>>LineNumbering = Vrai 
    AX_code>>DisplayLeftMargin = False
    AX_code>>SelBounds = True
    AX_code>>LineToolTips = True
    AX_code>>LineNumberStart = 1
    AX_code>>Font>>Name = "Courier New"
    AX_code>>Font>>Size = 10
    AX_code>>SetColor(16,8388736) 
    AX_code>>ColorSyntax = True
    Ceci donne cet affichage pour du Basic

    Nom : codemax.png
Affichages : 1286
Taille : 7,5 Ko

    Par contre pour ajouter certaines choses, il faut passer par des objets de CodeMax, par exemple pour ajouter un langage, par exemple en VB cela donne :

    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        ' sachant que  CodeMaxCtl est le contrôle CodeMax 
        Dim lang As CodeMaxCtl.Language
        Set lang = New CodeMaxCtl.Language
        lang.CaseSensitive = True

    C'est la méthode pour pouvoir créer cet objet lang ( Dim lang As CodeMaxCtl.Language ) et ensuite de lui passer des valeurs ( lang.CaseSensitive = True) que je ne trouve pas.


    Des idées ?


    Merci d'avance et excellente journée


    Olivier

  2. #2
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut
    En fouillant dans la doc, j'ai trouvé cette structure :

    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    typedef struct {
        DWORD dwStyle;
        BOOL bIsCaseSensitive;
        LPCTSTR pszKeywords;
        LPCTSTR pszOperators;
        LPCTSTR pszSingleLineComments;
        LPCTSTR pszMultiLineComments1;
        LPCTSTR pszMultiLineComments2;
        LPCTSTR pszScopeWords1;
        LPCTSTR pszScopeWords2;
        LPCTSTR pszStringDelims;
        TCHAR chEscape;
        TCHAR chTerminator;
        LPCTSTR pszTagElementNames;
        LPCTSTR pszTagAttributeNames;
        LPCTSTR pszTagEntities;
    } CM_LANGUAGE;

    C'est exactement ce que je devrais passer en paramètre a mon activeX ... par contre le type LPCSTR (???? ), TCHAR(??) rien n'est pas indiqué dans le tableau de type C (doc de PC Soft : http://doc.pcsoft.fr/fr-FR/?1514020 ).

    Franchement je tourne en rond avec ce truc .... je suis dans le juste avec ma strcuture ?


    Olivier

  3. #3
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 396
    Points
    9 396
    Par défaut
    LPCTSTR, ça me fait penser à LONG POINTER C???? TO STRING

    Il faudrait donc choisir comme type un entier système.
    Ensuite, regarde vers la fonction transfert, ou vers l'opérateur &.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    ça m'arrive aussi de faire appel aux objets automations Excel dans mes projets windev, pour moi aussi, ça a été galère.
    Là, je dois faire appel aux objets métiers SAGE dans mes projets, afin de me faciliter grandement la tâche, je met mon code des objets automations dans les librairies .NET que je génère avec Visual Studio, puis j'ajoute cette librairie dans mon projet windev, ça marche du tonnerre.
    A votre place, c'est ce que je ferrais (à noter que visual studio community est une application gratuite, so besoin est, vous pourrez vous en servir).

  5. #5
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    hello,
    si c'est pour faire un éditeur de code dans une appli windev, autant utiliser directement un contrôle dotnet comme scintillaNet. D'autant plus que c'est scintilla qui est utilisé dans notepad++ et que Tanguy Pruvost avait codé le fichier de configuration pour le W.L.
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  6. #6
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    hello,
    voilà ce que cela peut donner avec scintillanet :

    Nom : ScintillaNet.png
Affichages : 1289
Taille : 24,9 Ko


    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  7. #7
    Membre actif
    Inscrit en
    Octobre 2013
    Messages
    274
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 274
    Points : 248
    Points
    248
    Par défaut
    bonjour

    excusez moi, mais quels sont les intérêts ?
    (vraie question!)

  8. #8
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut
    Bonjour,

    pour moi l'intérêt est que j'emploie énormément la compilation dynamique dans mes applications.

    J'ai créé un éditeur de code intégré, ce qui me permet de personnaliser mes applications pour des clients spécifiques tout en gardant une base commune.

    Et pour coder , ce serait mieux avec la coloration ...

    J'ai essayé avec l'exemple d'une LST (coloration syntaxique) , j'ai réussi a modifier l'exemple pour le WL, mais dès que le nombre de lignes de code augmente, ce n'est plus utilisable

    Olivier

  9. #9
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut
    @ jurassic pork ( j'adore le pseudo ! )

    Heu ... serait-ce abuser, mais j'ai bien téléchargé la *.dll de scintillaNET, j'arrive à la charger dans mon projet exemple ( avec importer un assemblage .NET) j'ai pu le charger en montant la classe ScintillaNET.Scintilla.

    Par contre je sèche pour arriver à l'exemple que tu a mis ci-dessus avec le code WL coloré

    Tu as un petit exemple de code pour charger des mots clés ?

    J'ai essayé avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    MonScintilla.SetKeywords(0,"POUR TOUS FIN")
    MonScintilla.StyleResetDefault()
    MonScintilla:Styles.get_Item(Style.Default).Font = "Consolas"
    MonScintilla.Styles.get_Item(Style.Default).Size = 12
    MonScintilla.StyleClearAll()
    MonScintilla.Text = "Ceci est le texte à POUR  en évidence !"
    Pour l'instant je n'ai qu'une zone de saisie de texte ...


    Olivier

  10. #10
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut
    Bonjour,

    je me permets de remonter ce post ... le projet de l'année passée revient sur le devant de la scène et il me faudrait vraiment des pistes pour utiliser Scintilla avec WD ...

    A vrai dire, dans un premier temps il me faudrait uniquement l'édition du code avec coloration.

    J'ai testé pas mal de pistes mais je n'ai pas la finalité : je mem retrouve toujours avec une éditeur basique sans couleur.

    Si quelqu’un a un example simple de l'utilisation de Scintilla je prends !

    Excellente journée à tous

    Olivier

  11. #11
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    Hello,
    en pièce jointe un petit projet en Windev 16 qui permet d'éditer du code windev avec coloration syntaxique dans un composant scintillaNet.
    1 - Récupérer l'assemblage ScintillaNet ici (cliquer sur Manual Download).
    2 - Ouvrir le fichier téléchargé (jacobslusser.scintillanet.3.6.3.nupkg) avec 7Zip et extraire l'assemblage ScintillaNet.dll qui se trouve dans lib\net40.
    3 - Ajouter l'assemblage dotnet ScintillaNet.dll au projet.
    4 - Récupérer le plugin NotePad++ NPP.Plugin.WLangLexer.v4.1.0.16-wd16038f de Tanguy Pruvot qui se trouve ici
    5 - Extraire du zip le fichier Config\WLangLexer.xml et le mettre dans le répertoire du projet.
    6 - Faire actualiser sur Description XML dans l'explorateur de projet.
    La coloration syntaxique doit alors fonctionner avec du code Windev. Attention cela ne marchera pas avec les nouveautés introduites depuis Windev16 car le fichier de syntaxe date de 2011 (pas de mise à jour depuis apparemment).
    Il y a aussi dans le projet du code (procédure test) déclenché sur l'appui d'une touche dans le composant ScintillaNet.
    Voici ce que cela donne :
    Nom : Test ScintillaNet.png
Affichages : 980
Taille : 28,5 Ko

    Ami calmant, J.P
    Fichiers attachés Fichiers attachés
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  12. #12
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut
    Alors là, vraiment merci !

    ça fait je ne sait combien de temps que je galère sur le truc sans arriver à quoi que ce soit !!

    Je dis un grand MERCI !!



    Je pense que ce post va aider bien du monde, vu les nombreux messages que j'ai vu sur différents forum !

    Je crois que je me suis pas mal emmêlé les pinceaux avec les différentes version de Scintilla

    Excellente journée

    Olivier

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 122
    Points : 136
    Points
    136
    Par défaut
    Bonjour,

    Merci pour la fourniture de cet exemple Jurassic Pork.

    Je voudrais activer la fonction de pliage du code. j'ai réussi à adapter quasiment l'ensemble de l'exemple fourni sur le site de Scintilla à l'exception de cette partie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Set colors for all folding markers
    for (int i = 25; i <= 31; i++)
    {
        scintilla.Markers[i].SetForeColor(SystemColors.ControlLightLight);
        scintilla.Markers[i].SetBackColor(SystemColors.ControlDark);
    }
    Plus précisément :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        scintilla.Markers[i].SetForeColor(SystemColors.ControlLightLight);
        scintilla.Markers[i].SetBackColor(SystemColors.ControlDark);
    Pouvez-vous m'aider ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation du composant ActiveX acroPDF
    Par Faith's Fall dans le forum C++Builder
    Réponses: 3
    Dernier message: 21/08/2009, 19h45
  2. Réponses: 1
    Dernier message: 03/08/2006, 20h40
  3. [VB6]Utilisation d'un activeX
    Par marcou959 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 08/03/2006, 16h48
  4. Réponses: 1
    Dernier message: 21/02/2006, 17h13
  5. [ActiveX] Peut-on utiliser un Controle ActiveX avec Java
    Par waldo2188 dans le forum Multimédia
    Réponses: 2
    Dernier message: 22/02/2005, 11h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo