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
» Planétarium virtuel.
par Pedro Alvarez Hier à 16:57

» Roues dentées
par jean_debord Hier à 10:40

» Attention arnaque !
par mindstorm Jeu 19 Juil 2018 - 19:18

» Qui fait quoi ?
par silverman Mer 18 Juil 2018 - 15:21

» ITEM_SELECT N,L pour synedit
par silverman Mer 18 Juil 2018 - 15:20

» Boussole
par jean_debord Mer 18 Juil 2018 - 11:06

» Roue à n faces
par Marc Dim 15 Juil 2018 - 22:16

» Exemple d'une nouvelle version d'un GRID
par Jean Claude Ven 13 Juil 2018 - 10:32

» Une simple question
par Oscaribout Sam 7 Juil 2018 - 23:20

» BUG sur l'objet TAB
par Jack Sam 7 Juil 2018 - 21:12

» Monopoly moderne
par jjn4 Sam 7 Juil 2018 - 15:06

» Récapitulatif ludothèque panoramic jjn4
par jjn4 Ven 6 Juil 2018 - 17:41

» Lignes ondulées
par JL35 Ven 6 Juil 2018 - 17:39

» bug off_activate 0 : sans d'effet
par silverman Ven 6 Juil 2018 - 13:02

» Position des objets d'un conteneur dans FBPano et Panoramic
par Navigateur Ven 6 Juil 2018 - 12:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2018
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 Opérations de repérage sur un SYNEDIT

Aller en bas 
Aller à la page : 1, 2  Suivant
AuteurMessage
xxx



Nombre de messages : 261
Date d'inscription : 30/03/2018

MessageSujet: Opérations de repérage sur un SYNEDIT   Mer 2 Mai 2018 - 12:07

Bonjour,

Sur un synedit PANORAMIC, il est possible de récupérer 3 informations relatives à son contenu :

- La position du curseur
- Le nombre de caractères sélectionnés
- Le nombre total de lignes

A partir de cela, comment obtenir ces autres informations sans passer par des (longues et boulimiques) copies du texte dans des objets :

- Le numéro de la ligne courante
- Le nombre total de caractères du synedit
- La position horizontale courant (colonne) du curseur

Merci par avance pour votre aide.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

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

MessageSujet: Re: Opérations de repérage sur un SYNEDIT   Mer 2 Mai 2018 - 19:23

En demandant à Jack !

Bon Ok je sort...

lol! lol! lol! lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
silverman

avatar

Nombre de messages : 659
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Opérations de repérage sur un SYNEDIT   Mer 2 Mai 2018 - 19:27

fredisland a écrit:
A partir de cela, comment obtenir ces autres informations sans passer par des (longues et boulimiques) copies du texte dans des objets
C'est à dire? Tu as un mini exemple?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
xxx



Nombre de messages : 261
Date d'inscription : 30/03/2018

MessageSujet: Re: Opérations de repérage sur un SYNEDIT   Mer 2 Mai 2018 - 19:32

silverman a écrit:
fredisland a écrit:
A partir de cela, comment obtenir ces autres informations sans passer par des (longues et boulimiques) copies du texte dans des objets
C'est à dire? Tu as un mini exemple?

Passer par d'autres objets, comme le mémo, pour davantage travailler sur le texte


Dernière édition par Fredisland le Mer 2 Mai 2018 - 20:27, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 659
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Opérations de repérage sur un SYNEDIT   Mer 2 Mai 2018 - 20:23

Ah, ok.

fredisland a écrit:
- Le numéro de la ligne courante
ça a été traité il y a moins d'une semaine Wink

fredisland a écrit:
- Le nombre total de caractères du synedit
TEXT$() / LEN() sont tes amis Very Happy

fredisland a écrit:
- La position horizontale courant (colonne) du curseur
LEFT$() / INSTR_LAST() / CARET_POSITION() vont se joindre à tes nouveaux amis Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
xxx



Nombre de messages : 261
Date d'inscription : 30/03/2018

MessageSujet: Re: Opérations de repérage sur un SYNEDIT   Mer 2 Mai 2018 - 20:31

silverman a écrit:
fredisland a écrit:
- Le nombre total de caractères du synedit
TEXT$() / LEN() sont tes amis Very Happy
C'est bon, cette partie là est réglée Smile . Merci
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Marc

avatar

Nombre de messages : 803
Age : 57
Localisation : TOURS
Date d'inscription : 17/03/2014

MessageSujet: Re: Opérations de repérage sur un SYNEDIT   Mer 2 Mai 2018 - 21:03

Salut à tous !

Fredisland a écrit:
Le nombre total de lignes

Réponse : COUNT()
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

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

MessageSujet: Re: Opérations de repérage sur un SYNEDIT   Mer 2 Mai 2018 - 21:10

Non Marc pas sur un objet SYNEDIT !

Il faut d'abord passer le fichier de sauvegarde du SYNEDIT par un MEMO et après tu pourra faire COUNT(MEMO). Wink



Hoooops ! Autant pour moi. Embarassed


Dernière édition par Minibug le Mer 2 Mai 2018 - 21:21, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: Opérations de repérage sur un SYNEDIT   Mer 2 Mai 2018 - 21:14

Si,, Minibug, ça marche:
Code:
label nombre
synedit 1
button 2 : top 2,10 : left 2,width(1)+10 : caption 2,"Count()"
  on_click 2,nombre
end

nombre:
message str$(count(1))
return
Saisis quelques lignes, puis clique le bouton...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

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

MessageSujet: Re: Opérations de repérage sur un SYNEDIT   Mer 2 Mai 2018 - 21:22

Ah mince, j'étais sûr de moi pourtant ! Embarassed

Jack l'a t il rajouté récemment ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: Opérations de repérage sur un SYNEDIT   Mer 2 Mai 2018 - 21:23

Je ne sais pas... j'ai bêtement essayé...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 8077
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 2 Mai 2018 - 21:26

Il faudrait que ITEM_INDEX() soit disponible pour SYNEDIT...
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Opérations de repérage sur un SYNEDIT   Mer 2 Mai 2018 - 21:41

Saisis quelques lignes et clique sur le bouton "Item_Index":
Code:
label nombre, test
dim s$
synedit 1
button 2 : top 2,10 : left 2,width(1)+10 : caption 2,"Count()"
  on_click 2,nombre
button 3 : top 3,40 : left 3,width(1)+10 : caption 3,"Item_Index"
  on_click 3,test
  
memo 99 : hide 99 : bar_both 99
end

nombre:
message str$(count(1))
return

test:
' message SELECT_READ$(1)
' message str$(caret_position(1))
s$ = text$(1)
s$ = left$(s$,caret_position(1))
clear 99
text 99,s$+" "
message str$(count(99))
return

EDIT

J'oubliais: avant de cliquer, surligne un peu de texte...


Dernière édition par Klaus le Mer 2 Mai 2018 - 21:49, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 8077
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 2 Mai 2018 - 21:49

Embarassed , je me rappelle maintenant d' une astuce que j' avais moi même pondu dans un autre sujet sur le synedit.

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


mais ce n' est qu' une astuce...


Dernière édition par Yannick le Mer 2 Mai 2018 - 21:53, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Opérations de repérage sur un SYNEDIT   Mer 2 Mai 2018 - 21:51

C'est une autre façon de faire, et elle conduit au même résultat. Et tout cela peut être encapsulé dans une fonction, et le ITEM_IINDEX existe, en attendant une version native.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Marc

avatar

Nombre de messages : 803
Age : 57
Localisation : TOURS
Date d'inscription : 17/03/2014

MessageSujet: Re: Opérations de repérage sur un SYNEDIT   Mer 2 Mai 2018 - 21:54

Minibug a écrit:
Jack l'a t il rajouté récemment ?

Mad Non, ça fait environ un an...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8077
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 2 Mai 2018 - 21:55

J' ai pas fait mes devoirs pour FNC...END_FNC
J' ai pas appris ma leçon
Embarassed
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Opérations de repérage sur un SYNEDIT   Mer 2 Mai 2018 - 22:01

Comme ça:
Code:
label nombre, test
dim  index%
synedit 1
button 2 : top 2,10 : left 2,width(1)+10 : caption 2,"Count()"
  on_click 2,nombre
button 3 : top 3,40 : left 3,width(1)+10 : caption 3,"Item_Index"
  on_click 3,test
 
memo 99 : hide 99 : bar_both 99
end

nombre:
message str$(count(1))
return

test:
index% = mon_item_index(1)
message str$(index%)
return

fnc mon_item_index(obj%)
dim_local s$
s$ = text$(obj%)
s$ = left$(s$,caret_position(obj%))
clear 99
text 99,s$+" "
result count(99)
end_fnc
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 8077
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 2 Mai 2018 - 22:10

Merci Klaus.
Je ferai mes devoirs la prochaine fois.
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
xxx



Nombre de messages : 261
Date d'inscription : 30/03/2018

MessageSujet: Re: Opérations de repérage sur un SYNEDIT   Mer 2 Mai 2018 - 23:29

Merci pour toutes ces astuces ...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

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

MessageSujet: Re: Opérations de repérage sur un SYNEDIT   Mer 2 Mai 2018 - 23:37

Ok Marc, merci. Désolé pour l'erreur... Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
xxx



Nombre de messages : 261
Date d'inscription : 30/03/2018

MessageSujet: Re: Opérations de repérage sur un SYNEDIT   Jeu 3 Mai 2018 - 17:36

Je planche toujours sur le Numéro de colonne sur un synedit.... Faut jongler avec tous ces mots-clés PANORAMIC que je suis loin de connaître encore.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
xxx



Nombre de messages : 261
Date d'inscription : 30/03/2018

MessageSujet: Re: Opérations de repérage sur un SYNEDIT   Jeu 3 Mai 2018 - 21:50

Klaus a écrit:
Comme ça:
Code:
label nombre, test
dim  index%
synedit 1
button 2 : top 2,10 : left 2,width(1)+10 : caption 2,"Count()"
  on_click 2,nombre
button 3 : top 3,40 : left 3,width(1)+10 : caption 3,"Item_Index"
  on_click 3,test
  
memo 99 : hide 99 : bar_both 99
end

nombre:
message str$(count(1))
return

test:
index% = mon_item_index(1)
message str$(index%)
return

fnc mon_item_index(obj%)
dim_local s$
s$ = text$(obj%)
s$ = left$(s$,caret_position(obj%))
clear 99
text 99,s$+" "
result count(99)
end_fnc

En fait ce code fonctionne très bien, c'est bien le numéro de ligne qu'on obtient... Sauf si le curseur a dépassé le dernier caractère d'une ligne, car dans ce cas le résultat donne un nombre fantaisiste.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8077
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Ven 4 Mai 2018 - 2:46

As tu essayé cela :

Code:
dim SynItemIndex%
label change

synedit 1
on_change 1,change

end

change:
  off_change 1
  SynItemIndex%=SYN_ITEM_INDEX(1)
  caption 0,str$(SynItemIndex%)
  on_change 1,change
return

Fnc SYN_ITEM_INDEX(obj%)
  dim_local i%,cp%,nc%,a$

  cp% = caret_position(obj%)
  if count(obj%)>0
      for i%=1 to count(obj%)
        a$=item_read$(obj%,i%)
        nc%=nc%+len(a$)+2
        if nc%>cp%
            Result i%
            exit_for
        end_if
      next i%
  end_if
End_Fnc

normalement le numéro de ligne est correct...
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8077
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Ven 4 Mai 2018 - 3:50

Ligne + colonne du CARET :

Code:
dim SynCaretPosition$
label change

synedit 1
on_change 1,change

end

change:
   off_change 1
   SynCaretPosition$=SYN_CARET_POSITION$(1)
   caption 0,SynCaretPosition$
   on_change 1,change
return

Fnc SYN_CARET_POSITION$(obj%)
   dim_local i%,cp%,nc%,a$,r$,ac%

   cp% = caret_position(obj%)
   if count(obj%)>0
      for i%=1 to count(obj%)
         a$=item_read$(obj%,i%)
         ac%=nc%
         nc%=nc%+len(a$)+2
         if nc%>cp%
            r$="Ligne : "+str$(i%)+" Colonne : "+str$(cp%-ac%)
            Result r$
            exit_for
         end_if
      next i%
   end_if
End_Fnc


Laughing

NB: la fonction est sur un on_change.
cqfd cela n' indique rien en navigation avec les flèches
mais il ne reste qu' à adapter...
Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Opérations de repérage sur un SYNEDIT   

Revenir en haut Aller en bas
 
Opérations de repérage sur un SYNEDIT
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Bug avec la priorité des opérations arithmétiques ?
» Synedit Parameters
» Eclairage remorque avec décodeur d'accessoires
» Alimentation des LED cms
» Trajets. Opérations au départ et arrivée

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: