- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
GDI 中有 Delphi TextRect
的类似物吗?我查看了DrawText、DrawTextEx
,但没有找到我需要的东西。我需要绘制进度条的百分比文本,该进度条分为两个颜色部分,例如文本的左侧部分为黑色,右侧部分为白色。就像所有进度条中通常那样。
感谢您的回答!
最佳答案
您正在寻找ExtTextOut
功能。
示例:
procedure TForm4.FormPaint(Sender: TObject);
const
S = 'This is a sample text';
begin
ExtTextOut(Canvas.Handle, 10, 10, ETO_CLIPPED,
Rect(40, 10, 100, 100), PChar(S), length(S), nil)
end;
但我认为你真正想做的是画'NOT-coloured text' :
procedure DrawTextNOT(const hDC: HDC; const Font: TFont; const Text: string; const X, Y: integer);
begin
with TBitmap.Create do
try
Canvas.Font.Assign(Font);
with Canvas.TextExtent(Text) do
SetSize(cx, cy);
Canvas.Brush.Color := clBlack;
Canvas.FillRect(Rect(0, 0, Width, Height));
Canvas.Font.Color := clWhite;
Canvas.TextOut(0, 0, Text);
BitBlt(hDC, X, Y, Width, Height, Canvas.Handle, 0, 0, SRCINVERT);
finally
Free;
end;
end;
procedure TForm4.FormPaint(Sender: TObject);
const
S = 'This is a sample text';
var
ext: TSize;
begin
Canvas.Brush.Color := clBlack;
Canvas.FillRect(Rect(0, 0, Width div 2, Height));
Canvas.Brush.Color := clWhite;
Canvas.FillRect(Rect(Width div 2, 0, Width, Height));
ext := Canvas.TextExtent(S);
DrawTextNOT(Canvas.Handle, Canvas.Font, S, (Width - ext.cx) div 2,
(Height - ext.cy) div 2);
end;
(来源:rejbrand.se)
关于Windows GDI 中的 Delphi TextRect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7222520/
我想使用 Canvas.TextRect 在 Canvas 上以 90 度角和自动换行功能书写一些内容。我还希望文本在矩形中垂直对齐。我该怎么做? 最佳答案 以下是创建垂直字体的示例代码: funct
GDI 中有 Delphi TextRect 的类似物吗?我查看了DrawText、DrawTextEx,但没有找到我需要的东西。我需要绘制进度条的百分比文本,该进度条分为两个颜色部分,例如文本的左侧
我想在 TextRect 过程中应用一些文本格式,但我没有找到任何文档。在 Delphi 帮助中,位于 TextRect引用文献中说 TextFormat 变量只能有 3 个值:tfAutoText,
我正在使用 BasicTabbedPaneUI 为 JTabbedPane 实现我自己的外观和感觉。正在关注this tutorial ,我想在选项卡末尾添加关闭按钮。 到目前为止,我已成功在选项卡右
考虑以下代码: procedure TForm1.PaintBox1Paint(Sender: TObject); var vRect : TRect; vFormat : TTextForm
我正在使用一个自定义仪表,基于 Delphi (5 Enterprise) 附带的示例。对于那些不知道的人来说,它就像一个平滑的进度条,但在组件的中心(垂直和水平)显示百分比或值。 为了确保文本在仪表
我之前使用过这个代码范围: override func textRect(forBounds bounds: CGRect) -> CGRect { super.textRect(forBou
我是一名优秀的程序员,十分优秀!