Mars 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | Calendrier |
|
| | Fonctionnement du caret_x_position(N) | |
| | Auteur | Message |
---|
jjn4
Nombre de messages : 2677 Date d'inscription : 13/09/2009
| Sujet: 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 ????????? | |
| | | Oscaribout
Nombre de messages : 471 Date d'inscription : 29/12/2016
| Sujet: 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 | |
| | | silverman
Nombre de messages : 968 Age : 51 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: 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. | |
| | | jjn4
Nombre de messages : 2677 Date d'inscription : 13/09/2009
| Sujet: +++ 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... | |
| | | Jack Admin
Nombre de messages : 2379 Date d'inscription : 28/05/2007
| Sujet: Re: Fonctionnement du caret_x_position(N) Jeu 13 Déc 2018 - 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 | |
| | | Contenu sponsorisé
| Sujet: Re: Fonctionnement du caret_x_position(N) | |
| |
| | | | Fonctionnement du caret_x_position(N) | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |