FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Gestion d'un système client-serveur.
caret_yb_position Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
caret_yb_position Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
caret_yb_position Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
caret_yb_position Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
caret_yb_position Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
caret_yb_position Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
caret_yb_position Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
caret_yb_position Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
caret_yb_position Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
caret_yb_position Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
caret_yb_position Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
caret_yb_position Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
caret_yb_position Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
caret_yb_position Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
caret_yb_position Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-14%
Le deal à ne pas rater :
Apple MacBook Air (2020) 13,3″ Puce Apple M1 – RAM 8Go/SSD 256Go
799 € 930 €
Voir le deal

 

 caret_yb_position

Aller en bas 
3 participants
AuteurMessage
jjn4

jjn4


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

caret_yb_position Empty
MessageSujet: caret_yb_position   caret_yb_position EmptyMer 2 Jan 2019 - 18:26

Supposons un texte :

Voici venir les temps
où vi
brant sur sa tige...

où on en sélectionne manuellement une partie
(comme indiqué plus haut en bleu)

caret_position(N) donne alors 3
caret_x_position(N) donne 29
caret_y_position(N) donne 2

le caret_position devient alors une sorte de caret_b_position (b=begin)
puisqu'il donne la position du début de la sélection (ajouter 1)
le caret_x_position (enlever 1) devient une sorte de caret_e_position (e=end)
et le caret_y_position donne la position en y de la fin de la sélection

Mais on n'a rien pour connaître la position en y du début de la sélection
C'est là qu'il manque un caret_yb_position(N) (b=begin)
(parce qu'à vrai dire, ces caret_?_position(N) semblent manquer d'une certaine cohérence)
(faudrait-il des caret_b_p... caret_e_p... caret_xb_p... caret_xe_p... caret_yb_p... caret_ye_p... ?)
Enfin, c'est des idées et une proposition. Qu'en pense les forumeurs ?
study scratch
(en tout cas, j'ai du mal à calculer l'équivalent d'un caret_yb_position(N)
sans utiliser de for-to-next qui relentit fortement la vitesse de fonctionnement du programme)


Dernière édition par jjn4 le Ven 4 Jan 2019 - 17:26, édité 1 fois
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

caret_yb_position Empty
MessageSujet: Re: caret_yb_position   caret_yb_position EmptyJeu 3 Jan 2019 - 14:54

Tu peux peut être l'obtenir en déduisant le nb de chr$(13) de la sélection à 'caret_y_position(N)' :
Code:
dim null,l$,i,caret_yb_position
memo_rich 1 : left 1,200
item_add 1,"Voici venir les temps"+chr$(13)+chr$(10)+"où vibrant sur sa tige..."
select_text 1,4,25 : null=FIND(select_read$(1),1,1) :' surligner

' compter les chr$(13) dans la sélection
l$=select_read$(1)          :' lire la sélection
i=instr_pos(l$,chr$(13),1)  :' initier le comptage
caret_yb_position=0
while i>0
   i=instr_pos(l$,chr$(13),i+1)
   caret_yb_position=caret_yb_position+1
end_while
' déduire le résultat à 'caret_y_position(1)'
print "caret_yb_position(1) = ",caret_y_position(1)-caret_yb_position
Revenir en haut Aller en bas
Jack
Admin
Jack


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

caret_yb_position Empty
MessageSujet: Re: caret_yb_position   caret_yb_position EmptyJeu 3 Jan 2019 - 20:53

Je vais mettre un peu d'ordre dans ces fonctions caret_xy_position.

_________________
caret_yb_position Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
jjn4

jjn4


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

caret_yb_position Empty
MessageSujet: caret_yb_position   caret_yb_position EmptyVen 4 Jan 2019 - 16:05

Ah, super, merci, Jack !
cheers
@Silverman:
Ta formule peut être intéressante aussi,
même si elle contient également un cycle
(qui peut être cependant plus rapide
même quand la sélection est longue)
(Je vais étudier le temps que ça met
pour les textes très très longs et « sélectionner tout »)
(le but étant que la vitesse d'exécution
soit indépendante de la longueur du texte
comme de la longueur de ce qui est sélectionné)
Merci également pour ce coup de pouce !
sunny
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
jjn4

jjn4


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

caret_yb_position Empty
MessageSujet: caret_yb_position   caret_yb_position EmptyVen 4 Jan 2019 - 16:54

Réponse après étude :
La vitesse est fantasmagorique !
Super !
Mais le résultat est faux,
c'est quand même un peu embêtant.
(car la position du caret_y_position
dépend aussi de la largeur du memo_rich
et pas seulement du nombre de chr$(13)
qui lui, ne dépend que du nombre de chapitres)
Aïe, dur, dur !
scratch Mad study
(Cette erreur est néanmoins un progrès intéressant,
car cela me permet de m'apercevoir que ce que
j'avais fait précédemment était également faux)
cheers
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

caret_yb_position Empty
MessageSujet: Re: caret_yb_position   caret_yb_position EmptySam 5 Jan 2019 - 12:00

Alors peut être comme ça:
Code:
dim null,l$,i,caret_yb_position
memo_rich 1 : left 1,200
item_add 1,"Voici venir les temps"
item_add 1,"où vibrant sur sa tige..."
select_text 1,4,25 : null=FIND(select_read$(1),1,1) :' surligner

' second 'memo_rich' caché
memo_rich 11 : hide 11
content_copy 1,11                   :' copier 'memo_rich(1)' dans 'memo_rich(11)'
caret_position 11,caret_position(1) :' placer le caret comme dans le 'memo_rich(1)'
print "caret_y_position = ",caret_y_position(11)
Revenir en haut Aller en bas
jjn4

jjn4


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

caret_yb_position Empty
MessageSujet: caret_yb_position   caret_yb_position EmptySam 5 Jan 2019 - 17:37

Autant pour moi,
finalement, la formule d'avant-hier
a l'air de marcher quand même.
Embarassed
En tout cas, celle d'hier est astucieuse !
Chapeau ! Il est bien, ce content_copy,
dommage qu'il ne reproduise pas
le formatage du texte, à moins que
cela ne soit pas un inconvénient non plus...?
scratch
Je ne sais pas encore, car ces nouvelles
formules occasionnent de nouveaux bugs,
mais je devrais trouver quelque chose
avec tout cela, merci Silverman !
cheers
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
jjn4

jjn4


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

caret_yb_position Empty
MessageSujet: caret_yb_position   caret_yb_position EmptyDim 6 Jan 2019 - 19:00

Bon, ou ça ne marche pas
ou ça produit des bugs grrrrrrr
alors finalement, ce sera quand même
mieux lorsque Jack nous sortira
quelque chose comme caret_yb_position.
scratch Laughing alien
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

caret_yb_position Empty
MessageSujet: Re: caret_yb_position   caret_yb_position EmptyLun 7 Jan 2019 - 5:56

Je suis surpris que la deuxième méthode que j'ai posté ne fonctionne pas. Tu as un exemple?
Je n'ai peut être pas tout bien saisie, c'est bien le numéro de ligne du début d'une sélection que tu recherches?
Revenir en haut Aller en bas
jjn4

jjn4


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

caret_yb_position Empty
MessageSujet: caret_yb_position   caret_yb_position EmptyLun 7 Jan 2019 - 14:59

La deuxième méthode ne marche pas
car elle crée un décalage qui est dû,
je crois, au fait que dans le memo_rich
caché, le formatage du texte n'est pas
reproduit, si bien que le caret_y_position
ne se retrouve pas au même endroit que
dans le memo_rich visible.
Enfin, je crois que c'est cette raison-là.
En tout cas, ça crée un décalage.
scratch
Quant à la première méthode, si on tape
du texte trop rapidement, ça submerge
le cycle du while-end_while, si bien que
ça fait une erreur de type « No corresponding
end_while found » qui est très gênante.
scratch
Et je vais en profiter pour vérifier si
l'éventuel caret_yb_position demandé
va réellement résoudre le problème.
A suivre...
scratch
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
jjn4

jjn4


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

caret_yb_position Empty
MessageSujet: caret_yb_position   caret_yb_position EmptyLun 7 Jan 2019 - 15:45

Oui, vérifié, le caret_yb_position()
(qui sera sûrement utile à d'autres situations)
ne résoudra pas mon problème, car
il me faut compter les chr$(13).
Mais à la réflexion, je vais peut-être
pouvoir restructurer complètement
le système de façon à rendre le calcul inutile.
Mais alors il faut que je change tout, ahhhhh...
Rolling Eyes
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

caret_yb_position Empty
MessageSujet: Re: caret_yb_position   caret_yb_position EmptyLun 7 Jan 2019 - 18:51

Si c'est le formatage qui pose pb, il faut passer par un fichier temporaire puisque la commande 'content_copy' ne conserve pas ce formatage. Sad
Code:
label test
dim null,l$,i,caret_yb_position
memo_rich 1 : left 1,200
item_add 1,"Voici venir les temps"
item_add 1,"où vibrant sur sa tige..."

message "Selectionnez du texte"
' second 'memo_rich' caché
memo_rich 11 : hide 11
on_click 1,test
END

test:
   ' copier 'memo_rich(1)' dans 'memo_rich(11)'
   if file_exists(dir_current$+"\memo_rich_tmp")=1 then file_delete dir_current$+"\memo_rich_tmp"
   file_save 1,dir_current$+"\memo_rich_tmp"
   pause 1 :'
   file_load 11,dir_current$+"\memo_rich_tmp"
   pause 1 :'
   file_delete dir_current$+"\memo_rich_tmp"
   caret_position 11,caret_position(1) :' placer le caret comme dans le 'memo_rich(1)'
   print "caret_yb_position = ",caret_y_position(11)
return
Revenir en haut Aller en bas
jjn4

jjn4


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

caret_yb_position Empty
MessageSujet: +++   caret_yb_position EmptyMar 8 Jan 2019 - 19:34

Merci pour cette nouvelle formule intéressante.
(en particulier cette façon de faire
memo_rich_temp sans extension et sans point,
que je ne connaissais pas)
Mais comme je l'ai dit, je vais faire plus simple,
c'est-à-dire ajouter une ligne inutile au fichier RTF
pour égaliser les contenus et éliminer ainsi le calcul.
Evidemment, je ne manque pas de me dire :
Mais pourquoi je n'y ai pas pensé plus tôt ?
Bon, ce n'est pas si compliqué que cela à restructurer,
et je devrais publier le programme sous peu...
A suivre...
study scratch king
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Contenu sponsorisé





caret_yb_position Empty
MessageSujet: Re: caret_yb_position   caret_yb_position Empty

Revenir en haut Aller en bas
 
caret_yb_position
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 :: Vos souhaits d'amélioration de Panoramic-
Sauter vers: