Bonjour à vous, j'ai galéré pour trouver un moyen de connaitre la largeur et la hauteur en pixel d'un text, j'ai réussi à pondre cela :
J'ai un peu peur que ce soit long car c'est pas franchement optimisé. Quelqu'un aurait-il mieux svp
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 // Pour connaitre la largeur d'un texte Function TextSize(Phrase : string; Police : TFont = nil) : TPoint; var C : TBitmap; S, S1, S2 : string; J : Integer; begin S := Phrase; C := TBitmap.create; if police <> nil then C.canvas.Font := police; S1 := S; J := 0; while S1 <> '' do begin if (pos(#13, S1) <= 0) and (S1 <> '') then S2 := S1 else S2 := copy(S1, 1, pos(#13, S1)-1); delete(s1, 1, length(s2)+2); if C.Canvas.textwidth(S2) > J then J := C.Canvas.textwidth(S2); end; Result.X := J; Result.Y := C.canvas.TextExtent(S).cY* (Countchar(S, #13)+1); C.free; end;
Merci, Arrown
Partager