| 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 |
---|
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 Ven 26 Mai 2017 - 10:56 | |
| Ce qui est surprenant, c'est que le nouvel Éditeur de Panoramic s'auto-répare. Donc il n'interdit pas les pauses, il fait simplement peur à ceux qui désertent le poste de travail pour boire un café ! A+ | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 26 Mai 2017 - 12:17 | |
| Je ne sais pas si l' éditeur est allergique aux pauses mais ma souris à voulu me licencier ! Après une âpre bagarre avec le tournevis et une touche qui ne voulait plus se relever, elle a abdiquer devant la menace d' un licenciement abusif et me voilà de retour. Je crains tout de même devoir faire un plan de financement pour l' investissement dans une nouvelle souris.... | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 26 Mai 2017 - 12:22 | |
| @ Silverman,
Deux cas où cela ne fonctionne pas :
Objet synedit vide, quand on vient de l' ouvrir et que rien n' a encore été entré. Dernière ligne
pas de Chr$(13)Chr$(10) en fin de ligne. | |
|
| |
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 Ven 26 Mai 2017 - 15:32 | |
| Pour le premier cas: il suffit de controler le count de synedit au début de la procédure: - Code:
-
if count(synedit1%)<1 then exit_sub Pour le deuxième cas: on peut aussi savoir si on est à la dernière ligne. - Code:
-
if lig%=count(synedit1%) then .... A+ | |
|
| |
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 Ven 26 Mai 2017 - 17:05 | |
| @Yannick Soit créatif Pour le premier cas: L'idée de Jean Claude est excellente, pour tester si le synedit est vide, je n'y avais pas pensé, J'avais fait plus compliqué Pour le deuxième cas: Au début de la sub, 'item_add cr$'; A la fin 'item_delete syn_obj,count(syn_obj)' @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? Pour l'éditeur, je ne rencontre plus de pb à part la corruption d'affichage de temps en temps.
Dernière édition par silverman le Ven 26 Mai 2017 - 19:02, édité 3 fois | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 26 Mai 2017 - 17:25 | |
| @ SIlverman, Ce qui est à César est à César. C' est ta procédure à toi, d' assurer le SAV... ( désolé, j' ai des soucis très réels et j' ai un peu de mal à me concentrer sur le virtuel ces jours ci ) | |
|
| |
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 Ven 26 Mai 2017 - 17:59 | |
| | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re Ven 26 Mai 2017 - 18:12 | |
| Non, non, je ne suis pas accroc Silverman. J' ai fait beaucoup de choses sans avant ton arrivé. Mais je suis la politique du forum. Tu lances un truc, tu assures le SAV. Je ne voudrais pas être accusé de plagiat et que tu me réclames des droits d' auteur... | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 26 Mai 2017 - 20:38 | |
| @ Silverman, - Code:
-
sub TextInsert(Obj%,txt$) dim_local l%,cp%,nc%,tl$,p%, l%=0 cp%=0 nc%=0 tl$="" if len(a$)>0 set_focus Obj% cp% = caret_position(Obj%) if count(Obj%)>0 while cp%>nc% l%=l%+1 p%=cp%-nc% tl$=item_read$(Obj%,l%) nc%=nc%+len(tl$)+2 end_while tl$ = insert$(tl$,txt$,p%+1) if l% < count(Obj%) item_delete Obj%,l% item_insert Obj%,l%,tl$ else item_delete Obj%,l% item_add Obj%,tl$ end_if else item_add Obj%,txt$ end_if end_if end_sub
Dernière édition par Yannick le Ven 26 Mai 2017 - 21:05, édité 1 fois | |
|
| |
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 Ven 26 Mai 2017 - 21:02 | |
| - Yannick a écrit:
- Tu lances un truc, tu assures le SAV."
On n'est pas dans la bonne rubrique pour ça . Jack fait beaucoup d'effort pour stabiliser PE et améliorer synedit, ne nous égarons pas. Rappelons que pour le pb de handle de PE signalé plus haut, il est impératif que ce ne soit plus qu'un lointain souvenir, make_exe fonctionnera aussi avec un handle, alors ne nous relachons pas si l'on veut pouvoir finaliser nos éditeurs. Et vu que le nombre de message concernant la stabilité de PE est en diminution, je crois que Jack est sur la bonne voie... | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 26 Mai 2017 - 21:06 | |
| Mouep arrêtons de polluer ce post. J' ai édité le code au-dessus. | |
|
| |
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 Ven 26 Mai 2017 - 22:23 | |
| - Jack a écrit:
- Une nouvelle version est sortie (Version instantanée V 0.9.28i7).
Les modifications portent sur l'objet SYNEDIT: - FIND() et REPLACE() ne sont plus sensibles à la casse - on peut ajouter/insérer/retirer des lignes, les compter et les lire par programmation avec ITEM_ADD, ITEM_INSERT, ITEM_DELETE, COUNT() et ITEM_READ$()
Cette dernière phrase (- on peut ajouter/insérer/retirer des lignes,.......) écrite par Jack a dû passer à la trappe, ou mal lue, car il y a des possibilités derrière. Je ne me prononce pas plus, pour l'instant, car je n'ai pas encore mis en application toutes ces nouveautés. Sans vouloir critiquer, ni les uns, ni les autres, ni les façons ou habitudes, ni.... Je vais donner mon opinion sur les derniers échanges de ce poste. Personnellement je n'utilise pas KGF.dll, pour la simple et bonne raison qu'a chaque fois que j'ai essayé, je ne suis pas allé très loin. C'est trop compliqué pour moi et/ou ça ne correspond pas à ma vision de la programmation. En fait, je ne suis pas un pro et, en conséquence, plus c'est compliqué et moins j'avance. C'est pour cela que je reste sur une utilisation BASIC de Panoramic. Je tiens à préciser que KGF.dll fait (et fera encore) beaucoup pour Panoramic, et je ne veux en aucun cas critiquer son utilisation. Le travail acharné de Klaus fait le bonheur de beaucoup d'entre nous. La juste réflexion de Silverman (concernant un manque de créativité....) est à prendre avec humilité et en comparaison avec ce qu'est Panoramic. Nous sommes, pour un grand nombre d'entre nous, des programmeurs par passion de la programmation et/ou pour "s'amuser", et pas tous des pros. Panoramic, nous oblige à se triturer les méninges et n'est-ce pas ce, qu'au fond de nous, on recherche . L'avantage de la cohabitation entre les utilisateurs de KGF et les "puristes Panoramic", c'est que l'on découvre de part et d'autre beaucoup... Exemple: de mon coté je raisonne 100% Panoramic et cela me permet d'entrevoir des solutions simples à certains "problèmes" de programmation (vu que je n'utilise que Panoramic pour m'en sortir). Mais KGF permet de son coté de montrer et d'appliquer plein de possibilités de programmation que Panoramic ne possède pas encore. En fait, je pense que nous avons besoin des deux. D’ailleurs le forum ne s'en porte que mieux. Pour en revenir à la citation de Jack (ci-dessus), je me suis dit qu'avant de réclamer de nouvelles commandes ou fonctions, il serait d'abord préférable d'utiliser l'existant pour voir si c'est suffisant (ou pas). Mais bon, on ne programme pas tous à la même vitesse, ni de la même façon. Restons Zen ! chacun dit ce qu'il pense, il nous suffit de lire, de comprendre, de tolérer, de proposer et c'est comme cela qu'on avance. Fin de la pollution du post pour ce qui me concerne. | |
|
| |
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 Sam 27 Mai 2017 - 0:06 | |
| « Lorsque tu fais quelque chose, sache que tu auras contre toi, ceux qui voudraient faire la même chose, ceux qui voulaient le contraire et l’immense majorité de ceux qui ne voulaient rien faire »
"Dans la vie, quoi que tu fasses tu seras toujours critiqué, alors autant faire ce qui te plait."Bon, j’écris ça et je sors sur la pointe des pieds. | |
|
| |
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 Sam 27 Mai 2017 - 8:09 | |
| Voici une nouvelle version qui devrait répondre aux dernières demandes.
1 - lecture de la sélection
SELECT_TEXT N,P,C qui sélectionne C caractères du texte à partir de la position P, s'applique aux objets EDIT, MEMO, COMBO, SPIN, MEMO_RICH et SYNEDIT. SELECT_READ$(N) qui retourne le texte sélectionné, s'applique aux objets EDIT, MEMO, COMBO, SPIN, MEMO_RICH et SYNEDIT.
2 - insertion d'un texte
TEXT_INSERT N,P,T$ insère le texte T$ à partir de la position P. La position 0 correspond à la position avant le premier caractère. Cette commande s'applique aux objets EDIT, MEMO, COMBO, SPIN, MEMO_RICH et SYNEDIT.
3 - événements clavier
ON_KEY_UP, ON_KEY_DOWN, OFF_KEY_UP et OFF_KEY_DOWN s'appliquent aux objets BUTTON, EDIT, MEMO, COMBO, FORM, LIST, CHECK, OPTION, SPIN, GRID, MEMO_RICH, BUTTON_PICTURE, SCENE2D, GRID_DRAW, SYNEDIT.
4 - simulation des événements clavier
TRIGGER_KEY_UP N,C,S : simule l'événement clavier produit par l'appui sur une touche quand l'objet système numéro N a le focus. C est le code de la touche simulée. S est un code pour simuler une touche composée: 0 pour touche simple 1 pour SHIFT 2 pour ALT 3 pour CONTROL 4 pour SHIFT + ALT 5 pour SHIFT + CONTROL 6 pour ALT + CONTROL
TRIGGER_KEY_DOWN N,C,S : simule l'événement clavier produit par le relâchement d'une touche quand l'objet système numéro N a le focus. C est le code de la touche simulée. S est un code pour simuler une touche composée: 0 pour touche simple 1 pour SHIFT 2 pour ALT 3 pour CONTROL 4 pour SHIFT + ALT 5 pour SHIFT + CONTROL 6 pour ALT + CONTROL Remarque : TRIGGER_KEY_UP et TRIGGER_KEY_DOWN s'appliquent aux objets BUTTON, EDIT, MEMO, COMBO, FORM, LIST, CHECK, OPTION, SPIN, GRID, MEMO_RICH, BUTTON_PICTURE, SCENE2D, GRID_DRAW, SYNEDIT. _________________ username : panoramic@jack-panoramic password : panoramic123 | |
|
| |
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 Sam 27 Mai 2017 - 8:27 | |
| Super, Jack ! Je prends tout de suite ! | |
|
| |
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 Sam 27 Mai 2017 - 9:10 | |
| Merci Jack ! Je télécharge et je teste... Edit : Jack, après quelques tests rapides avec les fonction KEY... j'ai une petite question : 1) Je suis sur un objet SYNEDIT et je sélectionne des caractères dans cet objet. 2) Lorsque j'appuie sur les touches CTRL+X la sélecttion est supprimé ce qui est tout à fait conforme. 3) Si maintenant j'utilise dans mon programme la fonction : TRIGGER_KEY_DOWN syn%,88,3 qui est l'équivalent d'un appuie sur les touches CTRL+XCela ne fonctionne pas. Je dois passer par la fonction ON_KEY.... Est ce bien logique ? D'autre part, j'avais émis l'idée d'utiliser les fonctions suivante dans SYNEDIT : - CLIPBOARD_STRING_COPY - CLIPBOARD_STRING_PASTE$Crois tu que ce soit possible ? A titre d'info, j'ai toujours les mêmes messages d'erreurs dans l'éditeur.
Dernière édition par Laurent (Minibug) le Sam 27 Mai 2017 - 10:55, édité 1 fois | |
|
| |
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 Sam 27 Mai 2017 - 9:53 | |
| Super ! on va pouvoir jouer. Merci Jack. @Laurent, - Citation :
- SELECT_TEXT N,P,C qui sélectionne C caractères du texte à partir de la position P, s'applique aux objets EDIT, MEMO, COMBO, SPIN, MEMO_RICH et SYNEDIT.
SELECT_READ$(N) qui retourne le texte sélectionné, s'applique aux objets EDIT, MEMO, COMBO, SPIN, MEMO_RICH et SYNEDIT.
CLIPBOARD_STRING_COPY SELECT_READ$(N) Est-ce que cela ne ferait pas ton affaire ? Je n'ai pas essayé, mais je pense que ça doit marcher. 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 Sam 27 Mai 2017 - 9:58 | |
| As-tu essayé de faire: TRIGGER_KEY_DOWN syn%,3,88 TRIGGER_KEY_UP syn%,3,88 Normalement, ceci simule une frappe complète... | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 27 Mai 2017 - 10:02 | |
| Super Jack !!! Ne cherchez plus, Dieu est là ! | |
|
| |
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 Sam 27 Mai 2017 - 10:17 | |
| Bonjour Klaus !
Cela ne fonctionne pas car Panoramic me renvoie un message : (209) No active ON_KEY_DOWN for this object.
En gros il faut activer ON_KEY_DOWN et réaliser la suppression par programmation dans un sous-programme. Alors qu'un appuie sur CTRL et X fonctionne parfaitement ! | |
|
| |
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 Sam 27 Mai 2017 - 10:28 | |
| - Laurent a écrit:
- Si maintenant j'utilise dans mon programme la fonction :
TRIGGER_KEY_DOWN syn%,3,88 qui est l'équivalent d'un appuie sur les touches CTRL+X Cela ne fonctionne pas. Je dois passer par la fonction ON_KEY.... Est ce bien logique ? Attention à la confusion ! Les 3 commandes de la famille "TRIGGER": TRIGGER_CLICK TRIGGER_KEY_UP TRIGGER_KEY_DOWN simulent un événement créé par l'utilisateur, mais ne sont pas l'équivalent d'une action physique de l'utilisateur ! Je prend l'exemple de TRIGGER_CLICK sur un BUTTON. Si on a dans le code ON_CLICK N,LBL (N étant le numéro d'un bouton), TRIGGER CLICK N simule le clic sur le BUTTON, c'est à dire qu'il provoque l'exécution du traitement d'événement qui commence par le label LBL, mais le bouton n'est pas cliqué ! Tu ne le vois pas s'enfoncer et revenir. De même TRIGGER_KEY_UP/DOWN provoque une exécution du traitement des événements clavier ON_KEY_UP/DOWN, mais n'effectue aucune saisie dans l'objet ! _________________ username : panoramic@jack-panoramic password : panoramic123
Dernière édition par Jack le Sam 27 Mai 2017 - 10:30, édité 1 fois | |
|
| |
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 Sam 27 Mai 2017 - 10:30 | |
| @Laurent, Apparemment tu n'as pas lu mon message.
Bref, je viens de faire l'essai => CLIPBOARD_STRING_COPY SELECT_READ$(SYNEDIT1%) On a bien une copie du texte sélectionné dans SYNEDIT1%
Regarde les nouvelles "commandes" avec tu dois pouvoir Copier/Coller.
A+
| |
|
| |
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 Sam 27 Mai 2017 - 10:36 | |
| @ Jack et Jean Claude : Merci à tous les 2 pour vos messages. Je vais reprendre tout ça à zéro alors ! | |
|
| |
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 Sam 27 Mai 2017 - 10:41 | |
| - Laurent a écrit:
- D'autre part, j'avais émis l'idée d'utiliser les fonctions suivante dans SYNEDIT :
- CLIPBOARD_STRING_COPY - CLIPBOARD_STRING_PASTE$ Crois tu que ce soit possible ?
CLIPBOARD_STRING_COPY fait effectivement l'affaire: CLIPBOARD_STRING_COPY SELECT_READ$(N) met dans le presse-papier ce qui est sélectionné dans le SYNEDIT de numéro N. On peut récupérer le texte du presse papier par CLIPBOARD_STRING_PASTE$ et l'insérer dans un SYNEDIT. _________________ 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 Sam 27 Mai 2017 - 10:54 | |
| Je viens de refaire les tests sur les fonctions TRIGGER_KEY_... et tout semble OK ! Désolé, j'aurai du réfléchir un peu plus avant de m’enflammer comme d'habitude... En tous cas merci pour toutes ces nouvelles fonctions Jack ! | |
|
| |
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 | |
|