如何在Delphi中获得TEdit的画布? [英] How can I get a TEdit's canvas in Delphi?
本文介绍了如何在Delphi中获得TEdit的画布?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想缩短文件名以适合TEdit,例如
I want to shorten a filename to fit in a TEdit, something like
Edit1.Text := MinimizeName(FileName, Edit1.Canvas, Edit1.Width);
不幸的是,由于TEdit确实具有 Canvas,因此无法编译 code>属性。画布是其字体指标所必需的。
如何访问TEdit的画布?
Unfortunately this doesn't compile because a TEdit does have a Canvas
property directly. The canvas is needed for its font metrics.
How can I access a TEdit's canvas?
(在Vcl.FileCtrl中声明了 MinimizeName
。)
(MinimizeName
is declared in Vcl.FileCtrl.)
推荐答案
您可以使用 TControlCanvas
。您还应该考虑控件的字体。
You could use TControlCanvas
. You should also take the control's Font into account.
例如:
var
Canvas: TControlCanvas;
Canvas := TControlCanvas.Create;
try
Canvas.Control := Edit1;
Canvas.Font.Assign(Edit1.Font);
// Do something with Canvas...
finally
Canvas.Free;
end;
这篇关于如何在Delphi中获得TEdit的画布?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文