| |
Membre enregistré 342 messages Popularité : +30 (32 votes) |
|
Posté le 21 mai 2020 - 15:28 |
Bonjour
Je fais des essais avec l'assemblage DotNet Scintilla trouvé ici : https://github.com/jacobslusser/ScintillaNET Je suis parti de l'exemple fourni par Jurassic Pork dans ce post : https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev/212635-net-dotnetdelegue-scintillanet-214474/read.awp… Merci à lui
Pour moi le but est d'afficher et manipuler du code SQL
Ça fonctionne plutôt pas mal Le seul problème que j'ai est la détection de la modification dans le champ DotNet
J'utilise ce code pour intercepter l'évènement de modification :
DOTNET_Scintilla.add_TextChanged(DotNetDélégué(_TextChange, "System.EventHandler"))
Ça ne plante pas mais ça n'a aucun effet !
J'utilise d'autres évènements qui fonctionnent très bien :
DOTNET_Scintilla.add_KeyDown(DotNetDélégué(_KeyDown, "System.Windows.Forms.KeyEventHandler")) DOTNET_Scintilla.add_MouseDown(DotNetDélégué(_MouseDown, "System.Windows.Forms.MouseEventHandler")) DOTNET_Scintilla.add_GotFocus(DotNetDélégué(_GotFocus, "System.EventHandler")) DOTNET_Scintilla.add_SizeChanged(DotNetDélégué(_SizeChanged, "System.EventHandler"))
Je dois louper quelque chose ... Auriez-vous une idée ?
-- Pascal H. http://phapps.e-monsite.com |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 962 messages Popularité : +183 (185 votes) |
|
Posté le 22 mai 2020 - 17:56 |
hello, non tu ne loupes rien, il y a pas mal d'événements de ScintillaNet qui ne fonctionnent pas dans windev. J'ai essayé l'événement TextChanged avec une textbox dans Windev, cela fonctionne.
-- Ami calmant, J.P |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 342 messages Popularité : +30 (32 votes) |
|
Posté le 22 mai 2020 - 19:35 |
Salut Jurassic Pork Merci de ta réponse
J'ai regardé un peu dans les sources de l'assemblage. Visiblement TextChanged est un évènement hérité et donc pas directement implémenté par l'assemblage. Comme d'autres d'ailleurs. Ceci certains évenéments implémentés ne fonctionnent pas non plus, comme ZoomChanged.
Bon j'arrive à faire à peu près ce que je veux. Avec KeyDown et KeyPress je gère l'état modifié, j'intercepte les raccourcis que j'utilisais etc. Seul CTRL S mi pose problème car ça génère un device control 3, affiché "DC3" dans le champ. Je suis obligé de nettoyer quand j'intercepte ça (idem pour CTRL F ou CTRL H)
Cet assemblage n'est plus maintenu il me semble, c'est dommage ... Pas le temps de me mettre à dotnet
-- Pascal H. http://phapps.e-monsite.com |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 962 messages Popularité : +183 (185 votes) |
|
Posté le 23 mai 2020 - 00:45 |
hello, sinon en équivalent, il y a aussi le contrôle dotnet FastColoredTextBox disponible ici : https://github.com/PavelTorgashov/FastColoredTextBox Voici un exemple d'utilisation pour coloration syntaxique de texte html :
FCTB.Language = Language.HTML FCTB.Text = fChargeTexte("M:\test\example.html") FCTB.add_TextChanged(DotNetDélégué("TexteChangé","EventHandler<FastColoredTextBoxNS.TextChangedEventArgs>"))
avec la procédure TexteChangé :
Procedure TexteChangé(sender,args est un TextChangedEventArgs) Trace("Texte Changé : " + args.ChangedRange.Text )
-- Ami calmant, J.P |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 962 messages Popularité : +183 (185 votes) |
|
Posté le 23 mai 2020 - 00:54 |
oops le code:wl m'a changé une ligne il y a une erreur dans le add_TextChanged , c'est :
FCTB.add_TextChanged(DotNetDélégué("TexteChangé","EventHandler<FastColoredTextBoxNS.TextChangedEventArgs>"))
-- Ami calmant, J.P |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 342 messages Popularité : +30 (32 votes) |
|
Posté le 23 mai 2020 - 12:06 |
Super, merci pour l'info Je vais essayer et comparer avec Scintilla Je ferai un retour après mes essais Bon week-end
-- Pascal H. http://phapps.e-monsite.com |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 342 messages Popularité : +30 (32 votes) |
|
Posté le 29 mai 2020 - 11:43 |
Un petit retour sur l'utilisation de FastColoredTextBox https://www.codeproject.com/Articles/161871/Fast-Colored-TextBox-for-syntax-highlighting-2 https://github.com/PavelTorgashov/FastColoredTextBox
Ça fonctionne plutôt pas mal Bon il y a plein de choses que je ne sais pas encore faire mais ça viendra ... Il faut trouver la bonne syntaxe
Voici quelques exemples d'utilisation avec un champ que j'ai nommé DOTNET_FCTB :
DOTNET_FCTB.Language = Language.SQL
clDefaultFont est System.Drawing.Font("Consolas", 9) DOTNET_FCTB.Font = clDefaultFont
DOTNET_FCTB.Zoom = 90
DOTNET_FCTB.AutoCompleteBracketsList= "()[]{}"
DOTNET_FCTB.AllowDrop = Vrai DOTNET_FCTB.BackColor = Color.White DOTNET_FCTB.CurrentLineColor = Color.LightBlue DOTNET_FCTB.SelectionColor = Color.FromArgb(153,201,239) DOTNET_FCTB.ShowLineNumbers = Vrai DOTNET_FCTB.UpperCase()
DOTNET_FCTB.add_KeyDown(DotNetDélégué(_KeyDown, "System.Windows.Forms.KeyEventHandler")) DOTNET_FCTB.add_MouseDown(DotNetDélégué(_MouseDown, "System.Windows.Forms.MouseEventHandler")) DOTNET_FCTB.add_TextChanged(DotNetDélégué(_TextChanged,"EventHandler<FastColoredTextBoxNS.TextChangedEventArgs>")) DOTNET_FCTB.add_ZoomChanged(DotNetDélégué(_ZoomChanged,"EventHandler"))
DOTNET_FCTB.Text = "SELECT * FROM MaTable" DOTNET_FCTB.OpenFile("c:\temp\exemple.sql", Encoding.UTF8)
Procedure _MouseDown(sender <utile>, pclArgs est MouseEventArgs) clBouton est System.Windows.Forms.MouseButtons clBouton <- pclArgs.get_Button()
SI clBouton = MouseButtons.Right ALORS OuvreMenuContextuel(MENU_FCTB) FIN
Procedure _TextChanged(sender <utile>, args est un TextChangedEventArgs <utile>) Trace("Texte modifié : " + args.ChangedRange.Text )
-- Pascal H. http://phapps.e-monsite.com |
| |
| |
| | | |
|
| | |
| |
Posté le 20 septembre 2020 - 13:57 |
Hello,
est-ce que par hasard tu as réussi a mettre en place le code WL avec cet assemblage ? |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 342 messages Popularité : +30 (32 votes) |
|
Posté le 20 septembre 2020 - 15:31 |
Bonjour Olivier
Non désolé, j'utilise juste le paramètre fourni pour le SQL. Côte personnalisation je n'ai pas du tout regardé.
Si tu trouves comment faire ça pourra intéresser du monde Il y a un projet exemple (C# et VB) livré avec, regarde de ce côté là.
Pascal
-- Pascal H. http://phapps.e-monsite.com |
| |
| |
| | | |
|
| | |
| |
Posté le 09 novembre 2020 - 13:16 |
Bonjour, je me permets de relancer le post : - avez-vous réussi a mettre le WL dans le FastColoredTextBox ? - pour Scintilla, les évènement "touche enfoncée" et "touche relachée" ne fonctionne pas, le code n'est pas exécuté. Une idée du pourquoi ?
Merci d'avance et excellente journée |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 342 messages Popularité : +30 (32 votes) |
|
Posté le 09 novembre 2020 - 15:15 |
Bonjour Olivier
Je n'ai pas essayé d'implémenter WL, je n'en ai pas le besoin pour l'instant (+ manque de temps) Concernant les événements KeyDown et KeyPress ils fonctionnent très bien
Exemple pour KeyDown :
DOTNET_Scintilla.add_KeyDown(DotNetDélégué(_KeyDown, "System.Windows.Forms.KeyEventHandler"))
Procedure _KeyDown(pclParam1 est System.Object <utile>, pclParam2 est KeyEventArgs <utile>)
clKeyCode est System.Windows.Forms.Keys clKeyCode <- pclParam2.KeyCode
_Trace(clKeyCode.value__)
Par contre, d'autres évènements ne fonctionnent pas, d'où mon passage sur FastColoredTextBox. FastColoredTextBox est fonctionnel tout de suite pour du SQL, c'est ce qu'il me fallait.
Mais le sujet m’intéresse et j'y reviendrais
-- Pascal H. http://phapps.e-monsite.com |
| |
| |
| | | |
|
| | |
| |
Posté le 10 novembre 2020 - 13:06 |
Effectivement ... je passais bêtement par les fonctions internes du champ .net de Windev.
Je suppose que les actions sont interceptées avant par l'assemblage, avec ton exemple c'est parfait !!
Un grand merci ! |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 342 messages Popularité : +30 (32 votes) |
|
Posté le 10 novembre 2020 - 13:54 |
| |
| |
| | | |
|
| | |
| |
Posté le 11 novembre 2020 - 08:01 |
Bonjour Je voudrais pouvoir utiliser FastColoredTextBox dans un projet N'ayant jamais utilisé un champ ou composant externe avec WinDev , j'avoue être complètement perdu pour la mise en œuvre Je ne sais pas par exemple ou mettre la dll et ce qu'il faudrait mettre en plus et comment l'intégrer dans un projet .
Je sais que c'est un peut gonflé de ma part et je m'en excuse sincèrement, mais auriez-vous un exemple de projet basic que je pourrais analyse pour voir comment cela fonctionne .
Encore mille excuses pour l'audace. Bonne journée. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 511 messages Popularité : +18 (18 votes) |
|
Posté le 11 novembre 2020 - 13:16 |
| |
| |
| | | |
|
| | |
| |
Posté le 12 novembre 2020 - 15:18 |
Bonjour Merci beaucoup pour la réponse , je viens de regarder et cela vas effectivement beaucoup m'aider je vous souhaite une excellente journée . |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 342 messages Popularité : +30 (32 votes) |
|
Posté le 13 novembre 2020 - 11:30 |
Je vais ajouter un petit projet avec un exemple pour les deux composants. Je crois qu'on ne peut joindre un fichier ici, je passerai par le dépôt PCSOFT.
-- Pascal H. http://phapps.e-monsite.com |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 342 messages Popularité : +30 (32 votes) |
|
Posté le 13 novembre 2020 - 12:20 |
| |
| |
| | | |
|
| | |
| |
Posté le 02 décembre 2020 - 15:24 |
Merci Pascal pour cet exemple que j'ai utilisé immédiatement !
Dans mon cas, j'ai une liste de tables et, pour chacune, leurs colonnes que je souhaite pouvoir déplacer dans un ScintillaNet configuré pour SQL.
J'essaye maintenant d'implémenter du drag and drop mais malgré mes tâtonnement, je n'arrive pas à le faire fonctionner.
Quelqu'un a-t-il déjà joué avec cet événement ? |
| |
| |
| | | |
|
| | |
| |
Posté le 10 décembre 2020 - 13:14 |
Hello,
Je butte sur le problème de l'interception des ctrl-s qui me font des entrées DC3comme expliqué plus par hpascal plus haut ... j'essaie de mettre en place certaine fonction ( comme le Ctrl.s ) , sans succès pour l'instant ...
A quel endroit vous filtrez ça ? j'ai essayé un peu tout ce que je connaissais ... sauf la solution je crois ... |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 342 messages Popularité : +30 (32 votes) |
|
Posté le 10 décembre 2020 - 20:02 |
Bonjour
C'est pour ce genre de choses que je suis passé à FastColoredTextBox qui fonctionne beaucoup mieux (pour mon usage en tout cas)
-- Pascal H. http://phapps.e-monsite.com |
| |
| |
| | | |
|
| | |
| |
Posté le 28 janvier 2022 - 16:17 |
Bonjour si quelqu'un arrive à faire fonctionner l'autocomplète ?
Merci d'avance |
| |
| |
| | | |
|
| | |