2009-10-14 15 views

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; 
+0

Bet ja też go przez 10 sekund! –

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

Powiązane problemy