Pb longueur d'une chaine de caractère en TWIP

Signaler
Messages postés
515
Date d'inscription
dimanche 17 février 2002
Statut
Membre
Dernière intervention
10 mars 2008
-
Messages postés
49
Date d'inscription
jeudi 30 août 2001
Statut
Membre
Dernière intervention
28 avril 2010
-
voila comme le di le titre je voudrais récupérer la longueur d'une chaine de caractère afin de savoir si la largeur du controle est suffisamment importante pour afficher la totalité du texte.
J'ai un truc du genre:

longueur = Len(cmd.caption) * cmd.FontSize * 1440 / 72

en sachant que:
fontsize s'exprime en points
que 72 points = 1 pouce
que 1440 twip = 1 pouce
et que l'unité de ma feuille est en twip

mais ça à pas l'air de marcher

J'ai besoin d'aide

Merci d'avance

Yomm

4 réponses

Messages postés
59
Date d'inscription
vendredi 26 juillet 2002
Statut
Membre
Dernière intervention
29 janvier 2004

Le problème c'est aussi que la longueur est différente selon les caractères ("i" et "m" par exemple). Il y a la police "Courrier" qui affiche les caractères sous la même longueur ou bien il faut mémoriser la longueur de chaque caractère...
0
Messages postés
515
Date d'inscription
dimanche 17 février 2002
Statut
Membre
Dernière intervention
10 mars 2008
3
si j'avais une valeur proche même s "i" est plus cour que "m" je m'en fou mais là ça correspond pas,je me retrouve avec des valeurs ki font le double de ce kel devrait...
0
Messages postés
59
Date d'inscription
vendredi 26 juillet 2002
Statut
Membre
Dernière intervention
29 janvier 2004

Alors divise par 2...
Sinon j'ai trouvé un solution un peu tordu:
L'objet label peut se redimensionner en fonction de la valeur de sa propriété caption
Il faut le mettre invisible, renseigner sa propriété caption et se référer à sa propriété width pour la longueur de la chaîne

'Soit Label1 le label
'Command1 le bouton de commande
'Dans le load
Label1.Visible = False
Label1.AutoSize = True

'Dans la fonction qui doit redimensionner Command1
'Soit StrChaine, la chaîne de caractères en question
'Soit LargMin, la largeur minimum pour Command1 si souhaitée

'En général ça se joue à un caractères près
Label1.Caption = StrChaine & "m"
Command1.Caption = StrChaine
Command1.Width = LargMin
If Label1.Width > LargMin Then
Command1.Width = Label1.Width
End If
0
Messages postés
49
Date d'inscription
jeudi 30 août 2001
Statut
Membre
Dernière intervention
28 avril 2010

Définit la police souhaitée de ta Form puis utilise la propriété :
MaForm.TextWidth("blablabla")
0