FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Découpe dans une image
par JL35 Aujourd'hui à 23:03

» FNC IsDateValide(d$) pour vérifier la validité d'une date
par Marc Aujourd'hui à 21:51

» Pour faire plaisir à Marc37.
par Marc Aujourd'hui à 21:46

» Couleur d'une variable qui n'est pas un mot-clé
par bignono Aujourd'hui à 14:03

» Un catalogue de photos de fleurs, avec KBDD, affichage HTML
par Klaus Hier à 22:44

» KGF_dll - nouvelles versions
par Klaus Hier à 22:30

» Mah-Jong anglais
par jjn4 Hier à 14:22

» Partie fractionnaire d'un flottant
par silverman Hier à 14:19

» bug CREATE_HIDE : corruption de form
par silverman Hier à 13:32

» Racine carrée d’un nombre par l’algorithme de Héron
par Ouf_ca_passe Hier à 9:52

» Méthode manuelle d'extraction de la racine carrée
par pascal10000 Hier à 7:47

» [annulé]ON_MOVE n,l ne fonctionne que sur le form 0
par silverman Mar 20 Fév 2018 - 16:52

» Ludothèque Panoramic
par jjn4 Mar 20 Fév 2018 - 15:42

» Calculus
par Ouf_ca_passe Mar 20 Fév 2018 - 9:06

» 6 (en analyse):confusion de variable locale entre SUB et FNC
par Jack Mar 20 Fév 2018 - 8:18

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Février 2018
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
262728    
CalendrierCalendrier

Partagez | 
 

 Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT

Aller en bas 
Aller à la page : Précédent  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
AuteurMessage
Klaus

avatar

Nombre de messages : 10575
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT   Mar 30 Mai 2017 - 15:24

Voici comment j'ai fait en Delphi 6:
Spoiler:
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jean Claude

avatar

Nombre de messages : 5174
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT   Mer 31 Mai 2017 - 18:46

Bonsoir à tous,

Ça y est ! en avançant dans mon code j'ai enfin compris le problème avec Annuler et Refaire. Embarassed

La question de Jack est: pourquoi voulez-vous cette commande, du moins c'est ce que j'ai compris.

Je vais tenter d'expliquer la chose:
Je résume les 2 raccourcis claviers Ctrl+Z et Ctrl+Maj+Z pour Annuler et Refaire fonctionnent très bien dans SYNEDIT, par contre ce n'est pas programmable (à partir d'un menu, par exemple).
Alors que dans l'éditeur Panoramic il y a bien la fonction Annuler dans le menu Edition et elle fonctionne à partir de ce menu.

Le code ci-dessous met en évidence le problème.

Code:
synedit 1
item_add 1,"bonjour les amis"
item_add 1,""
item_add 1,"Démonstration Pour Annuler ou Refaire "
item_add 1,""

label Annuler,Refaire
Main_menu 2
sub_menu 3 : parent 3,2 : caption 3,"Annuler" : on_click 3,Annuler
sub_menu 4 : parent 4,2 : caption 4,"Refaire" : on_click 4,Refaire

END
                          
Annuler:
  message "Inopérant par le menu, utiliser votre clavier Ctrl+Z"
RETURN

Refaire:
  message "Inopérant par le menu, utiliser votre clavier Ctrl+Maj+Z"
RETURN

Pour te convaincre, Jack: prenons l'exemple d'un utilisateur qui débute en programmation et qui ne connait pas forcément tous les raccourcis clavier.
S'il n'a pas, dans le menu, (ou un bouton dans une toolbar) les possibilités annuler et refaire et qu'il ne connait pas les raccourcis le voilà privé de 2 possibilités importantes pour un éditeur.
Au mieux il sait que ces 2 fonctions existent et va chercher ou demander sur le forum...
Au pire, il ne le sait pas, ....

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

Nombre de messages : 2522
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT   Mer 31 Mai 2017 - 19:16

Eh ben tu vois jean claude ça finit par rentrer !!
Laughing Laughing Laughing Laughing Laughing Laughing

Je suis content que tu es réussi à reproduire l'erreur. Cà fait une personne de plus pour tenter d'expliquer à Jack ! Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Jean Claude

avatar

Nombre de messages : 5174
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT   Mer 31 Mai 2017 - 20:05

Laurent a écrit:
Je suis content que tu es réussi à reproduire l'erreur.

Je ne suis pas certain que ce soit une erreur, un oubli peut-être.
Pour comprendre le problème, il a fallu que j'ai eu besoin de coder ces 2 fonctions (Annuler,Refaire).
Un bon exemple, est plus facile à comprendre.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 525
Age : 45
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT   Sam 3 Juin 2017 - 10:14

Jack a écrit:
Je ne comprends toujours pas pourquoi vous voulez émuler l'envoi des touches CTRL+X, CTRL+C et CTRL+V sur un objet.

En fait, il y a un pb de synchronisation entre les actions codé par programmation et celles de l'objet synedit.

Imaginons que dans le traitement de texte WORD, on décide d'utiliser à plusieurs reprise CTRL+X puis d'annuler ces actions par CTRL+Z et le sous menu annuler du menu édition; Si le raccourci CTRL+Z ne faisait pas la même chose que le sous menu "annuler", ce serait très ennuyeux pour les utilisateurs.

D'où le souhait de qq uns de vouloir émuler l'envoi des touches CTRL+X, CTRL+C, CTRL+V et CTRL+Z sur l'objet synedit, puisque ces actions réalisées par programmation ne sont pas synchronisées avec celles des raccourcis de l'objet synedit.
De plus, les CTRL+X/C/V/Z programmés avec 'on_key_xxx' interfères avec ceux de l'objet synedit.

Une autre solution qui serait aussi valable selon moi, serait de créer une commande pour désactiver/activer les raccourcis natifs de l'objet synedit, cela règlerait le pb d'émulation d'envoi de touches et de synchronisation, mais nécessiterait le codage des fonctions undo/redo par les panoramiciens.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10575
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT   Sam 3 Juin 2017 - 11:03

Citation :
mais nécessiterait le codage des fonctions undo/redo par les panoramiciens.
Oh là, attention ! Comme je plonge dans les entrailles du Synedit, j'en sais quelque chose sur la façon dont c'est implémenté, et entre autres, sur les Undo/Redo. C'est un véritable monument et dépasse de loin la mémorisation de quelques portions de texte. Il y a l'ensemble des actions sur le texte à considérer, y compris la gestion des raccourcis (ctrl/1, ctrl/2, ...).

A mon avis, il faut absolument garder l'accès aux fonctions natives de l'objet Synedit - c'est l'essentiel de sa puissance.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jean Claude

avatar

Nombre de messages : 5174
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT   Sam 3 Juin 2017 - 11:29

Bonjour à tous,

Silverman a écrit:
Une autre solution qui serait aussi valable selon moi, serait de créer une commande pour désactiver/activer les raccourcis natifs de l'objet synedit, ....

Une commande de plus, qui à mon avis ne servira à personne.
Quel intérêt de désactiver les raccourcis natifs de SYNEDIT, si on utilise SYNEDIT c'est que l'on fait un éditeur pour programmer donc on a besoin de ces raccourcis.
Sinon en supposant que la fonction existe, il faudra tout reprogrammer ces fonctions (bonjour le plaisir et les bugs  Very Happy ).
Bon, c'est vrai qu'on ne sera pas obligé de s'en servir.... Very Happy  

En fait, au stade où j'en suis de mon code, il ne me manque que la possibilité de pouvoir déclencher Ctrl+Z et son contraire, ou par le menu, ou par 2 boutons. Les autres fonctions sont codées, sauf Ctrl+C qui bug comme je l'ai signalé ici => http://panoramic.free-boards.net/t5302-copier-coller-dans-synedit-bug#65275.

J'attends que Jack ai du temps pour regarder tous ça en détail, pour poster mon code.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

Nombre de messages : 2522
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT   Sam 3 Juin 2017 - 12:49

Citation :
Une commande de plus, qui à mon avis ne servira à personne.

Tout à fait d'accord avec toi Jean Claude !
Tous ceux qui ont programmé SYNEDIT avant qu'il ne soit introduit dans Panoranic, grâce à la dll de Klaus ne me contrediront pas !

Il faut savoir et je le répète, qu'a la base tous les raccourcis implantés par défaut (natifs) fonctionnent parfaitement dans SYNEDIT. Alors, comme dirait Yannick, pourquoi réinventer la roue ?

Et comme le dit Klaus, il faut garder ses fonctions natives !
Le seul problème qui se pose aujourd'hui c'est la possibilité de déclencher les raccourcis de SYNEDIT par la programmation des touches de ces mêmes raccourcis. Même si cela n'est pas le plus facile, je pense que c'est la meilleur solution, de la même manière que Klaus l'a fait dans sa dll.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Yannick

avatar

Nombre de messages : 8015
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: Re   Sam 3 Juin 2017 - 21:42

D' autant que d' autres fonctions dispose dans le SYNEDIT de KGF et sûrement
plus chronophage pour être programmées seront utiles...
Laughing

Exemple : connaitre la ligne et la colonne du caret ... tongue
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8015
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: Re   Sam 3 Juin 2017 - 21:43

Embarassed doublon.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 525
Age : 45
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT   Mer 7 Juin 2017 - 10:09

En plus de l'editeur, il y a corruption d'affichage de l'objet synedit. Plusieurs panoramiciens on confirmer ce pb, Jean Claude a trouver le moyen pour le reproduire à chaque fois, ici.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
pascal10000

avatar

Nombre de messages : 688
Localisation : Troyes
Date d'inscription : 05/02/2011

MessageSujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT   Ven 15 Sep 2017 - 6:58

Bonjour Jack
Peut tu mettre les commandes clipboard_copy ; clipboard_Paste et clipboard_Cut a synedit
merci d'avance
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 525
Age : 45
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT   Ven 15 Sep 2017 - 14:45

Bonjour à tous

@pascal1000
Tu peux obtenir la même chose avec ces subs(dll "user32", donc uniquement windows):
Code:
dim i

EXTEND_SYNEDIT() :' AJOUTER DES COMMANDES A L'OBJET SYNEDIT

synedit 1 : set_focus 1
item_add 1,"azertyuiop"


' sélectionner du texte
   select_text 1,1,4
   pause 500

' le couper
   SYNEDIT_CUT(1)  :' couper
   ' SYNEDIT_COPY(1)  :' ou tout simplement copier
   pause 500

' le coller à la fin du synedit
   for i=1 to 5
      NEW_LINE(1)
      SYNEDIT_PASTE%(1)  :' coller
      pause 500
   next i

' annuler tout
   for i=6 to 1 step -1
      SYNEDIT_UNDO%(1)  :' annuler(undo)
      if i>1 then DELETE_CURRENT_LINE(1) :' n'efface pas la première ligne
      pause 500
   next i

caret_position 1,0
END
'
sub NEW_LINE(synedit%)
 dim_local xx,x,cpt,cp
   ' cré une nouvelle ligne
   item_add 1,""
   x=find(chr$(13),1,caret_position(1))
   ' positionne le caret au début de la ligne
   caret_position 1,x+1
end_sub


sub DELETE_CURRENT_LINE(synedit%)
 dim_local x,cpt,cp
   ' recherche de la ligne courante
   cp=caret_position(synedit%)
   x=find(chr$(13),synedit%,cp)
   while x>0
      cpt=cpt+1
      x=find(chr$(13),synedit%,x+1)
   end_while
   ' la supprimer
   item_delete 1,count(synedit%)-cpt
   ' repositionner le caret
   if cp>1 then caret_position 1,cp-2
end_sub


sub EXTEND_SYNEDIT()
   if variable("WM_CUT%")=0
      ' commande :
      dim WM_CUT%,WM_COPY%,WM_PASTE%,WM_UNDO%
      WM_CUT%  =768   :' ctrl+x : couper
      WM_COPY% =769   :' ctrl+c : copier
      WM_PASTE%=770   :' ctrl+v : coller
      WM_UNDO% =772   :' ctrl+z : annuler(undo)
      '
      dim user32%
      user32%=2
      '
      LIBRARY user32%,"user32.dll"
      command "message_for_synedit","SendMessageA",user32%,"IIII","stdcall"
      ' ex.: message_for_synedit handle(N), window_message%, my_value1%, my_value2%
   end_if
end_sub


sub SYNEDIT_CUT(synedit%)
   message_for_synedit handle(synedit%),WM_CUT%,0,0
end_sub


sub SYNEDIT_COPY(synedit%)
   message_for_synedit handle(synedit%),WM_COPY%,0,0
end_sub


sub SYNEDIT_PASTE%(synedit%)
   message_for_synedit handle(synedit%),WM_PASTE%,0,0
end_sub


sub SYNEDIT_UNDO%(synedit%)
   message_for_synedit handle(synedit%),WM_UNDO%,0,0
end_sub


@jack
Qu'en est-il du pb de corruption d'affichage?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
pascal10000

avatar

Nombre de messages : 688
Localisation : Troyes
Date d'inscription : 05/02/2011

MessageSujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT   Ven 15 Sep 2017 - 15:20

oui sylverman je le sais et grâce a papydall
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT   

Revenir en haut Aller en bas
 
Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT
Revenir en haut 
Page 10 sur 10Aller à la page : Précédent  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
 Sujets similaires
-
» version instantanée du 22 mai 2010: redimensionner SPRITE
» PANORAMIC_IDE: version instantanée du 25 septembre 2010
» Version instantanée 26 septembre 2014 : PANORAMIC V 0.9.26i2
» Version instantanée du 7 janvier 2015 : PANORAMIC V 0.9.26i5
» PANORAMIC_IDE: version instantanée du 20 septembre 2010

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Ce qui est en cours ...-
Sauter vers: