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
» Fonctionnement du caret_x_position(N)
par Jack Hier à 20:36

» Problèmes en cours.
par Jack Hier à 20:31

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Hier à 19:55

» Exemple d'une nouvelle version d'un GRID
par Minibug Hier à 17:36

» Comment faire fonctionner \qj en RTF ?
par jjn4 Mer 12 Déc 2018 - 19:25

» Mais où est donc passé Klaus ?!
par Jicehel Mer 12 Déc 2018 - 13:38

» Problème avec SaveStringList.
par Klaus Mer 12 Déc 2018 - 12:14

» Je suis de retour !
par Klaus Mer 12 Déc 2018 - 12:10

» Connexion au forum
par mindstorm Mer 5 Déc 2018 - 19:09

» Version instantanée V 0.9.29i5 du 17/11/2018
par silverman Ven 30 Nov 2018 - 10:37

» imprimer avec Print.dll
par JL35 Jeu 29 Nov 2018 - 21:33

» Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ...
par Minibug Dim 25 Nov 2018 - 15:37

» Impression de documents
par JL35 Ven 23 Nov 2018 - 19:45

» Logiciel de soutien scolaire.
par Marc Jeu 22 Nov 2018 - 20:51

» Logiciel de soutien en langues.
par Marc Jeu 22 Nov 2018 - 19:39

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2018
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
31      
CalendrierCalendrier

Partagez | 
 

 Fonctionnement du caret_x_position(N)

Aller en bas 
AuteurMessage
jjn4

avatar

Nombre de messages : 1790
Date d'inscription : 13/09/2009

MessageSujet: Fonctionnement du caret_x_position(N)   Jeu 6 Déc 2018 - 17:45

J'ai fait une étude du fonctionnement du caret_x_position(N)
que je ne comprenais pas toujours très bien,
d'autant que certains avaient déjà signalé qu'il semblait donner une valeur excessive de 1.
J'ai construit un petit programme permettant d'essayer de comprendre:
Code:
dim V1M% , V2M% : label mouse
width 0,999 : caption 0,"Cliquez quelque part sur le memo_rich"
memo_rich 100 : left 100,5 : top 100,65 : width 100,150 : height 100,105 : on_mouse_up 100,mouse
for V1M% = 1 to 5 : item_add 100,"voilà voilà" : next V1M%
alpha 110 : left 110,10 : top 110,5
alpha 120 : left 120,10 : top 120,25
alpha 125 : left 125,10 : top 125,45
grid 130 : left 130,170 : top 130,10 : width 130,800 : height 130,160
grid_column 130,14 : grid_row 130,6 : grid_column_width 130,55
for V1M% = 1 to 5 : grid_write 130,V1M%+1,1,"Ligne "+str$(V1M%) : next V1M%
for V1M% = 1 to 13 : grid_write 130,1,V1M%+1,"Caract "+str$(V1M%) : next V1M%
for V1M% = 1 to 5
   for V2M% = 1 to 13
      grid_write 130,V1M%+1,V2M%+1,mid$(item_read$(100,V1M%),V2M%,1)+" = "+str$((V1M%-1)*13+V2M%)
   next V2M%
next V1M%
alpha 140 : left 140,10 : top 140,180
alpha 150 : left 150,160 : top 150,180 : caption 150,"= caret_position ou caret_position + 1"
alpha 160 : left 160,10 : top 160,200
alpha 170 : left 170,160 : top 170,200 : caption 170,"= caret_position + longueur sélectionnée"
end
mouse:
   caption 110,"Caret_x_position = "+str$(caret_x_position(100))
   caption 120,"Caret_y_position = "+str$(caret_y_position(100))
   caption 125,"Longeur sélectionnée = "+str$(len(select_read$(100)))
   V1M%=caret_position(100)
   if select_read$(100)<>""
      V1M%=V1M%+1
   end_if
   caption 140,"Début de sélection = "+str$(V1M%)
   caption 160,"Fin de sélection = "+str$(caret_position(100)+len(select_read$(100)))
return

Le caret_x_position(N) fonctionne différemment selon qu'on travaille sur une seule ligne :


ou qu'on travaille sur plusieurs lignes :

Dans ce dernier tableau, on se demande comment il a fait pour trouver : 21 ?????????????

Est-ce un bug ou quelque'un a une explication ?????????
scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Oscaribout



Nombre de messages : 214
Date d'inscription : 29/12/2016

MessageSujet: Re: Fonctionnement du caret_x_position(N)   Ven 7 Déc 2018 - 1:43

Bonsoir,

Pour l'instant, en attendant une réponse et une correction de Jack, je préfère la méthode suivante qui est compatible avec les versions antérieurs. On verra après.

Code:
'
label teste
dim lig%,cur% , a%

memo 1 : width 1,width_client(0):height 1,150:font_size 1,12:font_name 1,"Consolas" : on_click 1,teste
   for a% = 1 to 50 : item_add 1,"123456789 123456789 123456789 123456789 123456789 123456789 :" + str$(a%) : next a%
memo 2 : top 2,160:bar_both 2 : height 2,100:width 2,width(1)
alpha 3: top 3,280:left 3,100:font_size 3,15
alpha 4: top 4,280:left 4,400:font_size 4,15
end

teste:
   lig% = ligne%()
   cur% = curseur%()
   caption 3,"ligne cliquée: " + str$(lig%)
   caption 4,"curseur:" + str$(cur%)
return

FNC ligne%()
   text 2,left$(text$(1),caret_position(1))
   result count(2)  : ' le nb de ligne correspond au compteur
END_FNC

FNC curseur%()
   text 2,left$(text$(1),caret_position(1))
   dim_local cur%
   cur% = len(item_read$(2,count(2))) : ' la dernière ligne est le texte de la ligne jusqu'au caret_position(1)
   result cur%
END_FNC
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

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

MessageSujet: Re: Fonctionnement du caret_x_position(N)   Ven 7 Déc 2018 - 14:31

'caret_x_position(N)' et 'caret_y_position(N)' ne retournent pas le même résultat lorsqu'utilisées sur un memo_rich/memo/synedit. Comme elles sont en cours de développement, je pense qu'elles sont encore un peu boguées pour le moment.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jjn4

avatar

Nombre de messages : 1790
Date d'inscription : 13/09/2009

MessageSujet: +++   Ven 7 Déc 2018 - 18:52

Citation :
Comme elles sont en cours de développement, je pense qu'elles sont encore un peu boguées pour le moment
Oui, apparemment...
scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Jack
Admin
avatar

Nombre de messages : 1955
Date d'inscription : 28/05/2007

MessageSujet: Re: Fonctionnement du caret_x_position(N)   Hier à 20:36

Pour le moment, je note ces problèmes.
Je regarderai quand j'en aurai le temps.

Pour coder CARET_X_POSITION et CARET_Y_POSITION, je m'étais basé sur ce que donnent les traitements de texte et le bloc-note de Windows quand on prend l'option Affichage/barre d'état.
Si je tape le caractère a et que le caret est après ce caracère, il indique:
Ligne 1
Colonne 1

_________________
username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.1fr1.net
Contenu sponsorisé




MessageSujet: Re: Fonctionnement du caret_x_position(N)   

Revenir en haut Aller en bas
 
Fonctionnement du caret_x_position(N)
Revenir en haut 
Page 1 sur 1

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: