Bonjour à toutes et à tous,

Je cherche à connaître la taille en pixels d'une chaîne afin de la cadrer dans une image, je fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TAffCarte.Infos_GPS(X, Y: Integer; Txt: String; bmp: TBGRABitmap; clText, clFond: TBGRAPixel);
var
  h1, h2: Integer;
begin
  bmp.FontHeight := 36;
  bmp.FontAntialias := true;
  bmp.FontStyle := [fsBold];
  h1:= bmp.Canvas.Font.GetTextWidth(Txt);
  h2:= bmp.Canvas.GetTextWidth(Txt);
 
  bmp.FillRoundRectAntialias(X-l/2, Y-15, X+l/2, Y+15, 10, 10, clFond, [rrDefault], True);
  bmp.TextOut(X-l/2, Y-10, Txt, clText);
end;
Si la taille du texte affiché est bien en rapport avec "FontHeight", chacune des deux lignes (h1 et h2) me renvoie systématiquement 188, qui est en rapport avec le texte choisi, mais qui n'est absolument pas en rapport avec la taille de police choisie.

Que faut-il faire pour avoir un nombre de pixels en rapport avec la taille de la police ?

Cordialement.

Pierre