Après windows pour les nuls, voici PB pour les bons (ou presque).

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.
  • Index
  •  » Powerscripts
  •  » [RESOLU] Limiter le nombre de lignes d'un multiline edit

#1 18-04-2014 12:22:04

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

[RESOLU] Limiter le nombre de lignes d'un multiline edit

Bonjour,

Existe-t-il une option, un moyen simple de limiter le nombre de lignes saisies dans un multiline edit ?
Pour ma part je fais un contrôle a posteriori du type :

Code: pb

Integer i, li_count = 0

i = Pos(mle_saisie.Text, Char(10))
Do
  If i = 0 Then Exit
  li_count ++
  i = Pos(mle_saisie.Text, Char(10), i + 1)
Loop Until i = 0

If li_count > 6 Then
// DO SOMETHING
End If

Je récupère la valeur de mon contrôle pour l'intégrer à une édition et je dois limiter à 6 lignes le texte saisi.
L'idéal étant le blocage à la saisie du 6-ième saut de ligne. Evidemment, une ligne trop longue passerait à la ligne, je devrais donc aussi contrôler le nombre moyen de caractères par ligne, etc.

Dernière modification par sbouvetJD (22-04-2014 14:59:26)

Hors ligne

 

#2 18-04-2014 14:24:16

Yanis  
Modérateur
Lieu: paris
Date d'inscription: 16-06-2010
Messages: 349
Pépites: 665
Banque: 150

Re: [RESOLU] Limiter le nombre de lignes d'un multiline edit

Salut,

     tu peux utiliser le code suivant pour connaitre le nombre de ligne d'un multiline edit

     Declare la fonction externe suivante :
     

Code: pb

     FUNCTION long SendMessage (long hwnd , long wMsg, long wParam, long lParam) Library "user32.dll" Alias for "SendMessageA"

Met le code suivant :
     

Code: pb

     Constant long EM_GETLINECOUNT = 186 

     integer    li_count
     li_count = SendMessage (handle (mle_1), EM_GETLINECOUNT, 0, 0) 
     // tu obtiens le nbre de ligne qu'il y ait des retour à la ligne ou non le calcul est auomatiquement fait en cas de wrapping à la ligne

Cdt
yanis

Hors ligne

 

#3 18-04-2014 16:07:17

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

Re: [RESOLU] Limiter le nombre de lignes d'un multiline edit

Merci pour ce bout de code !
Mais le wrapping dépend de la largeur du MLE, de la police employée, etc.
Et dans mon édition, ma zone d'impression fait une autre taille et emploie une autre police. Je sais donc que je peux supporter approximativement 35 signes pour 6 lignes. Je teste donc si j'ai moins de 6 retour à la ligne, si tel est le cas je teste le nombre de car.

Hors ligne

 

#4 18-04-2014 19:30:37

Yanis  
Modérateur
Lieu: paris
Date d'inscription: 16-06-2010
Messages: 349
Pépites: 665
Banque: 150

Re: [RESOLU] Limiter le nombre de lignes d'un multiline edit

Salut,

    Moi je mettrais un mle invisible avec la fonte destinée à l'impression et à chaque caractère je ferais une copie dans le mle invisible et je testerai à l'aide de l'api le nbre de ligne.
    Le calcul sera plus sur.

Cdt
Yanis

Hors ligne

 

#5 22-04-2014 14:59:08

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

Re: [RESOLU] Limiter le nombre de lignes d'un multiline edit

Merci Cdt ! (Il y a des gradés ici ? ah ah ah)
J'attends validation finale de la maquette mais cette solution me va bien !

Hors ligne

 
  • Index
  •  » Powerscripts
  •  » [RESOLU] Limiter le nombre de lignes d'un multiline edit

Pied de page des forums

Propulsé par FluxBB 1.2.22