| Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT | |
|
+8Klaus papydall silverman Jean Claude Yannick Marc Minibug Jack 12 participants |
|
Auteur | Message |
---|
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Dim 28 Mai 2017 - 8:32 | |
| - Citation :
- Jean Claude a écrit:
Je constate aussi que je décroche par rapport à votre vision, en clair je n'y comprend plus rien. - Citation :
- Jack a écrit:
Rassure-toi, tu n'es pas le seul. Moi non plus, je n'y comprend plus rien. Bonjour jack ! En fait on voudrait retrouver le même principe que la fonction que Klaus utilise dans KGF : res% = dll_call5("SendSingleKey",hnd%,VK%,ctrl%,alt%,shift%)Peut être que le mieux placé pour répondre à notre question serait Klaus lui même qui pourra sûrement apporter une réponse moins confuse que nous et même expliquer par son code le principe que nous recherchons. Merci pour tes efforts Jack ! | |
|
| |
silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Dim 28 Mai 2017 - 10:49 | |
| @Jack C'est du détail, mais l'outils "codes des touches" de PE ne renvoit plus toujours les bons codes de certains combinaisons(ex shift+ctrl donne 6 au lieu de 5) A la base 'item_add' devait servir à ajouter des mots clés pour la coloration syntaxique, y aura t'il une autre commande en remplacement? | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| |
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Dim 28 Mai 2017 - 12:02 | |
| - Yannick a écrit:
- Plutôt que de demandér une série de commandes SYNEDIT, il me paraissait intéressant de se servir des commandes clavier natives......
Je me pose une question: est-ce que justement, ce n'est pas une imperfection de l'objet SYNEDIT qui n'aurait pas au départ toutes les possibilités clavier. Si c'est le cas: toutes les demandes que l'on peut faire, pour une fonction qui ne serait pas native, sont vaines. Je ne sais pas si je vais arriver à me faire comprendre, mais je vais tenter: Prenons le cas de Ctrl+Z (undo): J'ai l'intuition que si cette commande clavier n'est pas OK en natif pour l'objet Synedit dans Panoramic_Editor, alors toutes commandes (par programmation) concernant "undo" ne fonctionnera pas. Je veux dire que Jack pourra répondre à toutes nos demandes, mais ce sera en vain tant que l'objet SYNEDIT ne sera pas au point. J'espère que j'ai été clair, mais j'ai un doute... Si j'ai écris une connerie, je vous remercie à l'avance de m'expliquer pourquoi, plutôt que de rire sous cape... A+ | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Dim 28 Mai 2017 - 12:03 | |
| - Jack a écrit:
- Tant que je n'aurai pas compris à quoi tout cela peut bien servir, je fais une pause avec l'objet SYNEDIT. En attendant que ce mouvement brownien se décante, je reprends le 3ème but que je me suis fixé : mettre à jour le compilateur ...
N’étant pas encore SYNEDITicien habile, je préfère la mise à jour du compilateur et aussi la possibilité pour le programmeur (du dimanche ou de toute la semaine) de définir ses propres fonctions à l’instar des SUB. Je propose; je n'impose rien ! | |
|
| |
Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Dim 28 Mai 2017 - 12:26 | |
| Comme le problème est de pouvoir détruire un texte dans un SYNEDIT et qu'il y a une lacune de ce côté là, je vais coder 2 commandes qui s'appliqueront aux objets EDIT, MEMO, COMBO, SPIN, MEMO_RICH, SYNEDIT: TEXT_DELETE N,P,C qui supprime C caractères à partir de la position P dans l'objet de numéro N SELECT_DELETE N qui supprime le texte sélectionné dans l'objet de numéro N En effet, une commande similaire à SendSingleKey utilise la messagerie Windows et ne fonctionnera que sous Windows. Elle ne pourra pas être utilisée sous Android ou sous MACOS. Ceci est contraire à mon principe de portage de Panoramic sous Android et MACOS. De même CONTROLE X ne fonctionne que sous Windows. Sur MAC, l'équivalent est COMMAND X et sur un Smartphone Android, je pense que cela n'existe pas. J'essaye de porter sur le SYNEDIT d'Android et sur le SYNEDIT de MAC tout ce que je fais sur le SYNEDIT Windows. J'ai cependant un peu de retard, le SYNEDIT Windows est le plus avancé. Voici la photo du SYNEDIT de mon Smartphone (un Samsung Note 3) prise il y a quelques minutes. On y voit entre autres, la coloration des mots clés HEIGHT et WIDTH. _________________ username : panoramic@jack-panoramic password : panoramic123
Dernière édition par Jack le Dim 28 Mai 2017 - 13:25, édité 5 fois | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Dim 28 Mai 2017 - 12:37 | |
| @ Jean claude :
Rassure toi, SYNEDIT est totalement au point !
D'ailleurs si tu utilises les raccourcis clavier de SYNEDIT (et là je ne parle pas de programmation Panoramic) tu verra qu'ils fonctionnent tous parfaitement !
Ce qui pose problème c'est la simulation depuis Panoramic par le biais des ON_KEY_... C'est là où réside tout le problème...
Pour en avoir le cœur net, il suffit d'utiliser SYNEDIT depuis la dll de Klaus. Tu verra que toutes les fonctions que Klaus à rajouté fonctionnent parfaitement ! | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Dim 28 Mai 2017 - 14:03 | |
| - Laurent a écrit:
- Rassure toi, SYNEDIT est totalement au point !
Bon, ben ça c'est au moins une bonne nouvelle Apparemment Jack a compris la raison de tout notre tapage et va corriger l'imperfection ! Super ! A+ | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 28 Mai 2017 - 14:31 | |
| | |
|
| |
Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Lun 29 Mai 2017 - 9:17 | |
| Voici disponible au téléchargement une nouvelle version qui répond à la question de Laurent: - Laurent a écrit:
- Petite question bête :
Comment faites vous pour supprimer un texte déjà sélectionné ou une portion de texte ? Je ne vois comment procéder. je suis surement passé a coté de quelques chose... Cette version possède les 2 commandes qui s'appliquent aux objets EDIT, MEMO, COMBO, SPIN, MEMO_RICH, SYNEDIT: TEXT_DELETE N,P,C qui supprime C caractères à partir de la position P dans l'objet de numéro N SELECT_DELETE N qui supprime le texte sélectionné dans l'objet de numéro N De plus, toutes les nouvelles commandes et fonctions, et même ces 2 dernières font partie de la liste de mots-clés de l'objet SYNEDIT et sont donc colorées. Bon, cette fois, je retourne au compilateur. A bientôt. _________________ username : panoramic@jack-panoramic password : panoramic123 | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 29 Mai 2017 - 9:48 | |
| Toujours bon à prendre.... | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Lun 29 Mai 2017 - 17:13 | |
| Merci Jack pour cette nouvelle version. - Silverman a écrit:
- @Jack
Serait il possible d'ajouter item_index(N) à la liste des commmandes synedit pour connaitre ne numéro de ligne ou est positionné le caret? Je renouvelle cette demande, car je n'ai pas réussi à coder une SUB pour trouver le numéro de la ligne où se trouve le caret. Sauf si je recherche un texte là j'ai trouvé une solution, mais si le caret est sur un ligne vide c'est impossible. Question comportement de l'éditeur, ça va plutôt bien quand ça coince il suffit d'attendre sans acquitter les messages en provenance de Windows et tout rentre dans l'ordre quand le compteur que tu as mis en place atteint 160. A+ | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 29 Mai 2017 - 17:44 | |
| - Code:
-
dim_local i%,cp%,nc%,a$
cp% = caret_position(objet%) if count(objet%)>0 for i%=1 to count(objet%) a$=item_read(objet%,i%) nc%=nc%+len(a$)+2 if nc%>cp% ligne%=i% exit_for end_if next i% end_if | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Lun 29 Mai 2017 - 19:03 | |
| Bravo Yannick, ça marche! J'ai un peu retapé: il y avait une erreur de syntaxe et il manquait un nom de SUB et j'ai changé a$ par ligne$. - Code:
-
SUB recherche_index(objet%) dim_local i%,cp%,nc%,line$ cp% = caret_position(objet%) if count(objet%)>0 for i%=1 to count(objet%) line$=item_read$(objet%,i%) nc%=nc%+len(line$)+2 if nc%>cp% n%=i% : exit_for end_if next i% end_if END_SUB Il me reste à trouver comment renvoyer le caret en début de ligne (pour le cas où la ligne est vide et que le caret n'est pas au début), car ça pose un problème pour la recherche. Mais je m'arrête là pour ce soir, car je n'en peu plus. A+ PS: En fait ce problème de début de ligne fausse le résultat de ta SUB. Si le caret est en début de ligne le résultat est bon, sinon il est augmenté d'autant de ligne vide qu'il y a après la caret.
| |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 29 Mai 2017 - 19:13 | |
| - Code:
-
SUB recherche_index(objet%) dim_local i%,cp%,nc%,line$,ncp% cp% = caret_position(objet%) if count(objet%)>0 for i%=1 to count(objet%) line$=item_read$(objet%,i%) ncp%=nc% nc%=nc%+len(line$)+2 if nc%>cp% n%=i% caret_position objet%,ncp% exit_for end_if next i% end_if END_SUB | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Lun 29 Mai 2017 - 19:25 | |
| J'ai essayé mais ça ne change rien dans mon code. Il y a peut-être une mauvaise utilisation de ma part: soit je ne l'appelle pas au bon moment, soit le traitement qui suit n'est pas bon. Mais là, j'en ai marre, c'est inutile que je m'acharne En tous cas merci. Au passage, j'ai comme l'impression que tu as (COMME MOI) un problème de copier/coller avec Panoramic_Editor.De temps en temps, ça déconne sévère. Le collage est incomplet et il ne se fait pas à la position du caret. A+ | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Lun 29 Mai 2017 - 21:32 | |
| Un exemple tout simple de ce que l'on peut faire avec Synedit de Panoramic: - Code:
-
' essai_Synedit_Panoramic.bas
dim res%, SynHnd%, s$
synedit 1 : full_space 1
dll_on "KGF.dll"
SynHnd% = handle(1) set_focus 1
res% = dll_call5("SendSingleKey",SynHnd%,65,0,0,0) : ' insertion d'un "a" res% = dll_call5("SendSingleKey",SynHnd%,65,0,0,1) : ' insertion d'un "A" res% = dll_call5("SendSingleKey",SynHnd%,65,1,0,0) : ' envoi de ctrl/A pause 200 res% = dll_call5("SendSingleKey",SynHnd%,67,1,0,0) : ' envoi de ctrl/C pause 200 s$ = clipboard_string_paste$ message s$
end
Désolé, c'est en utilisant KGF.dll que j'y arrive. Mais c'est bien le Synedit de Panoramic, pas celui de KGF.dll ! | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 29 Mai 2017 - 22:54 | |
| C' est quand même bête de tout avoir et de ne pas pouvoir s' en servir. Empiler les commandes alors qu' une seule suffit pour toutes les avoir. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Lun 29 Mai 2017 - 23:16 | |
| Patience, Yannicl ! Jack en es tout au début de l'implémentation de Synedit. Il a bien dit qu'il veut faire de sorte que ce soit identique sous Windows, Andoid et MacOs. C'est une vraie gageure, compte tenu des différences des systèmes et même des claviers. Alors, soyons patients et attendons le résultat, d'autant qu'en attendant, nous avons deux solutions parfaitement opérationnelles, sous Windows: - Synedit de Panoramic, avec le soutien des fonctions de KGF.dll via le handle du Synedit - Synedit de KGF.dll avec ses fonctions de support assez complètes (et évolutives selon les besoins des Panoramiciens) | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Mar 30 Mai 2017 - 2:00 | |
| A propos de SYNEDIT justement...
Est ce que quelqu'un sait si les raccourcis des fonctions installées nativement dans SYNEDIT sont les mêmes sur Windows et sur MAC comme par exemple CTRL+X, CTRL+C et CTRL+V pour le couper, copier et coller ?
Car en fait ce qu'il faut ce n'est pas forcément l'émulation des fonctions SYNEDIT en elles même, mais bien une fonction qui émule le lancement des touches que ce soit sur WINDOWS ou sur MAC.
Et là du coup il doit bien y avoir une fonction qui correspond au SEND_KEY de Klaus dans KGF sur MAC. Puisqu’à priori le problème de Jack se situe à ce niveau !
Je sais pas si je suis assez clair ?!! | |
|
| |
Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Mar 30 Mai 2017 - 4:51 | |
| Je ne comprends toujours pas pourquoi vous voulez émuler l'envoi des touches CTRL+X, CTRL+C et CTRL+V sur un objet.
On obtient exactement la même chose en faisant :
(N est le numéro d'objet d'un EDIT, d'un MEMO, d'un COMBO, d'un SPIN, d'un RICH_EDIT, d'un SYNEDIT)
pour CTRL+X
1 - on mémorise dans mem$ ce qui est sélectionné mem$=SELECT_READ$(N) 2 - on efface ce qui est sélectionné SELECT_DELETE N
pour CTRL+C
on mémorise dans mem$ ce qui est sélectionné mem$=SELECT_READ$(N)
pour CTRL+V
on insère à la position du CARET ce qui est mémorisé dans mem$ TEXT_INSERT N,CARET_POSITION(N),mem$ _________________ username : panoramic@jack-panoramic password : panoramic123 | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Mar 30 Mai 2017 - 6:51 | |
| bonjour jack ! Tout à fait d'accord avec toi mais avec quelques petits bémols ! - Dans ce cas le CTRL+Z et CTRL+SHIFT+Z (ANNULER et RÉTABLIR) est inopérant. - D'autre part, plusieurs raccourcis natifs de SYNEDIT ne seront pas gérable par programmation. Voila pourquoi l'utilité de cette fonction et voila aussi pourquoi Klaus a mis en place le SEND_KEY qui est utilisé à la fois pour SYNEDIT et aussi pour de nombreux autre cas. Je dois me sauver. Bonne journée... | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 30 Mai 2017 - 8:25 | |
| Je ne dirai plus mieux. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT Mar 30 Mai 2017 - 8:33 | |
| @Jack: - Citation :
- Je ne comprends toujours pas pourquoi vous voulez émuler l'envoi des touches CTRL+X, CTRL+C et CTRL+V sur un objet.
Je crois qu'n réalité, il ne s'agit pas d'émuler quoi que ce soit. Je pense plutôt qu'il s'agit de la volonté d'exécuter des fonctions natives de Synedit qui sont normalement commandées par des raccourcis au niveau du clavier (sélectionner tout, défaire, refaire, ...). Synedit est un composant puissant avec de multiples fonctions, et on a évidemment envie de pouvoir s'en servir par programme, ce qui est parfaitement possible par l'envoi des différentes combinaisons de touches codées dans Synedit. Mais ça va évidemment plus loin. Il est clair que le même raisonnement s'applique à d'autres objets Panoramic, et même au-delà, pour gérer des objets d'applications externes (traitements d'images, ...). Dans tous ces cas, il peut être très utilise d'envoyer un caractère quelconque comme s'il avait été frappé au clavier, même si ce composant n'a pas le focus. Pour un objet Panoramic, on peut bien sûr spécifier le numéro d'objet pour indiquer la cible. Par contre, pur un objet externe il faut impérativement passer par le handle de l'objet. Et c'est exactement ce que fait la fonction - Code:
-
res% = dll_call5("SendSingleKey",hnd%,VK%,ctrl%,alt%,shift%) de KGF.dll. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 30 Mai 2017 - 8:43 | |
| Tout à fait. N n' est pas forcément un numéro d' objet Panoramic, on aurait pu le remplacer par H pour handle de l' objet ce qui ouvre encore plus les possibilités.
Même l' objet Memo peut en bénéficier. | |
|
| |
Contenu sponsorisé
| Sujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT | |
| |
|
| |
| Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT | |
|