我認爲我的問題已經夠清楚了,但我解釋得更多。簡單地說,當我們在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 2010-12-21 05:43:24
相關問題
- 1. 在vb.net中檢測文本的寬度
- 2. 將文本寬度與圖像匹配,但沒有指定確切的寬度
- 3. 如何在selenuim webdriver的xpath中檢查確切的文本?
- 4. 如何在運行時確定WPF TreeViewItem中文本的寬度?
- 5. 確定文本寬度
- 6. 確定UITextField中的文本寬度
- 7. Png在graphics32中的透明度,Builder XE6
- 8. 如何確定OpenSCAD中文本的寬度?
- 9. 如何在設置文本後獲得UILabel的正確寬度?
- 10. 將確切寬度設置爲td-文本溢出
- 11. 如何設置svg中的確切寬度
- 12. 當它超過div的寬度時如何切斷文本
- 13. 檢索導出的indesign的正確長度和寬度.png
- 14. 確定文本寬度的算法
- 15. 使用python在文本文件中搜索確切的變量
- 16. 如何在Perl中檢索終端寬度?
- 17. 用JQuery檢索寬度值
- 18. 如何獲得HTML輸入內文本的準確寬度?
- 19. 如何檢索HTML元素的實際寬度和高度?
- 20. 如何檢索延期圖像的寬度和高度?
- 21. 如何檢索XUL元素的實際寬度和高度?
- 22. Textview寬度的「0dip」切斷了TableLayout中的文本
- 23. Jquery在Chrome中切換寬度/高度
- 24. 如何使用UIKit計算文本的確切高度?
- 25. 獲取反應中影像的確切寬度和高度
- 26. 如何使用xpath和regex搜索確切的文本?
- 27. 如何確定Widget中的TextView寬度?
- 28. GWT:如何獲得文本框中文本的寬度?
- 29. UITableViewCell:在單元格中獲取UILabel的確切寬度
- 30. jquery的切片寬度腳本
例如你解決這個問題? – Runner 2010-12-21 12:54:39
是的。它完全用你提供的代碼完成。再次感謝你!!我真的需要這個 – Javid 2010-12-21 17:59:19