Bonjour,
je n'ai pas les idées très claires ! Je voudrais calculer la hauteur du texte d'un Label multiligne de largeur donnée (ici 400). J'ai fait ceci, mais ça me renvoie 680 au lieu de 170 que j'ai estimé :
Comment faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Label1.Font.Name := 'Segoe UI'; Label1.Font.Size := 10; Label1.Font.Color := clBlue ; Label1.WordWrap := True; MessageText := 'Ceci est un message très long qui devrait passer à la ligne ' + 'et ajuster la hauteur du panneau automatiquement.'+Chr(13)+ ' Ceci est un message très long qui devrait passer à la ligne ' + 'et ajuster la hauteur du panneau automatiquement.'+Chr(13)+ ' Ceci est un message très long qui devrait passer à la ligne ' + 'et ajuster la hauteur du panneau automatiquement.'+Chr(13)+ ' Ceci est un message très long qui devrait passer à la ligne ' + 'et ajuster la hauteur du panneau automatiquement.'+Chr(13)+ ' Ceci est un message très long qui devrait passer à la ligne ' + 'et ajuster la hauteur du panneau automatiquement.' ; Label1.caption := MessageText ; Canvas.Font.Assign(Label1.Font); TextW := Canvas.TextWidth(MessageText); if TextW > 400 then TextW := 400 ; Label1.Width := TextW; TextW := Canvas.TextWidth(MessageText); // 400 Ok Label1.Width := TextW; // 400 Ok Label1.Height := Canvas.TextHeight(MessageText) ; // donne 680 normalement environ 170 ?
Merci
A+
Charly







Répondre avec citation


Partager