私の質問は十分にはっきりしていると思いますが、もっと説明します。単純に、RenderTextプロシージャでAntiAliasを使用している場合、TextWidth関数内で取得された値は正しくありません。適切なテキストの幅を得るために何ができますか?Graphics32のRenderTextの正確なテキスト幅を取得する方法
2
A
答えて
4
独自のコードでアルゴリズムを探すことができます。彼らはまたそれを計算しなければなりません。とにかくこれは私がそれをする方法です。
function TGR32Canvas.TextWidth(const Text: string): Integer;
var
TempFont: TFont;
TempWidth: Integer;
begin
if Text <> '' then
begin
TempFont := TFont.Create;
try
TempFont.Assign(Font);
TempFont.Size := Font.Size shl AA_MODE;
TempWidth := GetTextWidth(Text, TempFont);
finally
TempFont.Free;
end;
end
else
TempWidth := 0;
TempWidth := (TempWidth shr AA_MODE + 1) shl AA_MODE;
Result := TempWidth shr AA_MODE;
end;
GetTextWidth関数は単純です。あなたは違ったやり方をすることができます。
function GetTextWidth(const Text: string; const Font: TFont): Integer;
var
Canvas: TCanvas;
begin
Canvas := TCanvas.Create;
try
Canvas.Handle := GetDC(0);
try
Canvas.Font.Assign(Font);
Result := Canvas.TextWidth(Text);
finally
ReleaseDC(0, Canvas.Handle);
end;
finally
Canvas.Free;
end;
end;
1
あなたはまた、Windows API関数を使用することができます
GetTextExtentPoint32 デルファイ
+0
GR32は描画に独自の技術を使用しているため、APIを使用すると正確な結果が得られないと思います。 – Runner
関連する問題
- 1. HTML入力内のテキストの正確な幅を取得する方法は?
- 2. 反応の画像の正確な幅と高さを取得
- 3. FreeTypeでテキストの幅を取得する方法は?
- 4. ExtPascalで文字列のテキスト幅を取得する方法
- 5. スクロールバーで確実に画面の幅を取得する方法
- 6. IDの正確な値を取得する方法
- 7. ¿セルの正確なアドレスを取得する方法は? (VB.NET/INTEROP.EXCEL)
- 8. オーバーレイマーカーの正確な位置を取得する方法
- 9. UITableViewCell swiftでUIViewの正しい幅を取得する方法
- 10. ピクセル単位のテキストビューの正確な幅をプログラムで取得する(Android)
- 11. WorkerRoleプロジェクトのデプロイ方法、アップロード時に正確なエラーを取得する方法
- 12. ajaxから正確なエラーメッセージを取得する方法
- 13. HTTP4Sクライアント。正確なリクエストとレスポンスボディを取得する方法
- 14. crashlyticsで正確なdSYMファイルを取得する方法
- 15. Twitter API(Tweepy)正確な条件を取得する方法
- 16. 正確な時刻を取得する方法DateTime.Now.TimeOfDay?
- 17. 正確なオーディオタイムベースを取得する方法
- 18. 正確なGPS座標を取得する方法Android LocationServices
- 19. xpathで正確なimg srcを取得する方法
- 20. 正確なURLを取得する方法
- 21. 角2正確な方法サーバーからデータを取得する
- 22. Solr検索で正確な列を取得する方法
- 23. UIPrintFormatterから正確なpageCountを取得する方法
- 24. タイムゾーンから正確な日付を取得する方法
- 25. 正確なジオフェンシングイベントを取得する方法
- 26. GoogleMaps Apiで正確な距離を取得する方法
- 27. JavaScriptから正確な文字列を取得する方法
- 28. javascriptで正確な画面の高さと幅を取得するには?
- 29. MatlabのFigure行、列に関するテキストの正確な位置を取得する方法
- 30. jsonからの正確な値の取得方法
に例を見つけるためにいくつかのグーグルを行いますが、問題を解決しましたか? – Runner
はい。それはあなたが与えたコードで完璧に完了しました。ありがとうございました!!私は本当にこれが必要でした – Javid