Delphi 7 のテキスト/キャプションの幅(ピクセル単位)
-
21-09-2019 - |
質問
これが私の問題です。テキストの実際の長さをピクセル単位で知りたいです(フォントによっては、さまざまな文字の長さが異なることに注意してください)。DBGrid での列幅の調整を改善するためにこれを使用します。
解決
使用できます Canvas.TextWidth
そして Canvas.TextHeight
機能。
オプション 1、コントロールのキャンバスを使用する
WidthInPixels := Label1.Canvas.TextWidth('My Text');
オプション 2、一時キャンバスの作成 (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;
他のヒント
あなたはDelphiのコンポーネントは、「キャンバス」性質を持っている持っている場合は、
、あなたはComponent.Canvas.TextWidthを使用することができます。たとえば、次のように使用できるのDBGridのテキストの幅を取得するには:
DBGrid1.Canvas.TextWidth('Stack');
ここでは、この問題についての完全なリファレンスを見つけることができます。 画素の
でDelphiの文字列の長所属していません StackOverflow