Oto mój problem, chcę znać faktyczną długość tekstu w pikselach (zauważ, że różne litery mają różną długość w niektórych czcionkach). Zamierzam użyć tego dla lepszego dopasowania szerokości kolumny w DBGrid.Szerokość w pikselach tekstu/podpisu w Delphi 7
11
A
Odpowiedz
24
Można korzystać z funkcji Canvas.TextWidth
i Canvas.TextHeight
.
Wariant 1, stosując płótnie kontrolą
WidthInPixels := Label1.Canvas.TextWidth('My Text');
Opcji 2, tworząc tymczasową płótno (używając Tbitmap)
Function GetWidthText(const Text:String; Font:TFont) : Integer;
var
LBmp: TBitmap;
begin
LBmp := TBitmap.Create;
try
LBmp.Canvas.Font := Font;
Result := LBmp.Canvas.TextWidth(Text);
finally
LBmp.Free;
end;
end;
5
jeśli komponent Delphi ma "płótna" Właściwość, następnie można użyć Component.Canvas.TextWidth. Na przykład: aby uzyskać szerokość tekstu DBGrid można użyć:
DBGrid1.Canvas.TextWidth('Stack');
Tutaj można znaleźć pełną wzmianka o tym numerze: Length of Delphi string in pixels
Bet ja też go przez 10 sekund! –