如何绘制“非”彩色文本?

2024-01-09

我正在寻找一种用反转颜色绘制文本的方法。 对于形状,我们有TPenMode可以设置为pmNot,但我们不能对文本执行此操作。我该怎么做呢?


这是这样做的:

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;

Example:

procedure TForm1.FormClick(Sender: TObject);
begin
  Canvas.Brush.Color := clRed;
  Canvas.FillRect(ClientRect);
  DrawTextNOT(Canvas.Handle, Canvas.Font, 'This is a test.', 20, 100);
//  DrawTextNOT(Canvas.Handle, Canvas.Font, 'This is a test.', 20, 100);
end;

您可能还想禁用 ClearType。为此,我建议您参考之前的一个SO问题 https://stackoverflow.com/questions/3716304/is-there-a-way-to-disable-font-anti-aliasing-when-using-textrect-aka-exttextout.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何绘制“非”彩色文本? 的相关文章

  • 如何更新Delphi对象检查器?

    继我最近发布的这个问题之后 组件编辑器可以在多个组件上执行吗 https stackoverflow com questions 14802371 can a component editor be executed on multiple
  • ADODB 组件导致 Win7/Server 2008 上的访问冲突

    我有一段用 Delphi 2005 编写的代码 用于在 LDAP 中搜索用户的特定属性 当在 Windows 7 或 Server 2008 上运行时 我遇到访问冲突 但在 XP 或 2003 上则没有 Function IsSSOUser
  • 如何将我的图标添加到组件选项板页面中的组件? [复制]

    这个问题在这里已经有答案了 可能的重复 Delphi非可视化组件图像 https stackoverflow com questions 3319276 delphi non visual component image 如何将我的图标添加
  • 如何在 Vista 上安装 Delphi 7

    我多次尝试在 Vista 上安装 Delphi 7 但 Vista 告诉我此应用程序 Delphi 7 存在已知问题 从而阻止了我这样做 我公司的其他几个人在 Vista 上安装 D7 时遇到了问题 由此得出的结论是 我们的 D7 应用程序
  • 获取 TransactSql 批处理中的语句数计数

    对于不使用 Delphi 的读者 虽然以下内容是根据 Delphi 编码来表达的 但我的实际技术问题不是特定于 Delphi 的 而是关于如何找出 Sql Server 如何 理解 TransactSql 批处理提交给它 TAdoQuery
  • 加载 Jpg/Gif/Bitmap 并转换为 Bitmap

    我必须从 XML 文件加载图像 XML 文件中没有关于图像是否为 JPG GIF BMP 的信息 加载图像后 我需要将其转换为位图 有谁知道如何在不知道实际文件格式的情况下将图像转换为位图 我正在使用 Delphi 2007 2009 谢谢
  • 如何在滚动框上创建缓慢的滚动效果?

    我喜欢在滚动框中平移图像后创建平滑的减慢滚动效果 就像平移地图一样谷歌地图 http maps google com 我不确定它是什么类型 但行为完全相同 当快速移动地图时 当您释放鼠标时它不会立即停止 而是开始减慢速度 有什么想法 组件
  • Indy 的 TIdHTTPProxyServer:如何过滤请求?

    我正在使用 TIdHTTPProxyServer 来实现一个简单的 HTTP 代理 但我现在想阻止一些与某些 URL 匹配的连接 哪个事件和 或组件最适合实现这一目标 Indy 文档并没有太多解释 Thanks 作为基本过滤器 您可以使用
  • 在运行时按需更改组件类

    我的问题与这里的想法类似 替换delphi中的组件类 https stackoverflow com q 4685863 937125 但我需要改变一个specific按需组件类 这是一些伪演示代码 unit Unit1 TForm1 cl
  • 开源 Delphi 包可使用哪些项目选项?

    我写了一些 Delphi 代码 想在 GitHub 上分享 所有代码都根据需要包含在运行时和设计时包中 每个项目有许多项目选项需要设置 输出目录 搜索路径 编译选项等 我设法找到了一些适合我的情况的默认选项 但阅读此处的其他问答很明显有多个
  • 当显示对话框时淡出应用程序的所有其他窗口?

    如何在 Delphi 2009 中调暗 淡出应用程序的所有其他窗口 Form 有一个 AlphaBlend 属性 但它仅控制透明度级别 但如果我们能有这样的东西那就太好了 集中窗口 http www anappaday com downlo
  • Delphi - 在修复 VCL 错误时,单元 x 是用不同版本的 x 编译的

    我正在使用 Delphi XE6 并在我的项目中使用 Datasnap 和 JSON 我想纠正 VCL 单元 System JSON pas 在 TJSONString ToString 函数中 中的一个错误 它应该转义反斜杠字符和引号 为
  • 以编程方式重新启动 Delphi 应用程序

    应该不可能运行我的应用程序的多个实例 因此项目源码包含 CreateMutex nil False PChar ID if GetLastError ERROR ALREADY EXISTS then Halt 现在我想以编程方式重新启动我
  • Word 2010 自动化:“转到书签”

    我有一个用 Delphi 7 编写的程序 它打开一个基于模板的新 Word 文档 文档打开后 系统会自动跳转到书签 在模板中预定义 并在其中添加一些文本 以下代码在 Word 2003 中工作正常 但会导致invalid variant o
  • Delphi AES 库 (Rijndael) 使用 KAT Vectors 进行测试

    对于这两个库 Delphi 加密概要 v 5 2 http code google com p delphidec TurboPower 密码箱 v 2 07 http lockbox seanbdurkin id au tiki list
  • Delphi IDE导致CPU过热

    我正在使用 Delphi 7 但我已经尝试过 Delphi 2005 2010 版本 在所有这些新版本中 当 Delphi IDE 在屏幕上可见时 我的 CPU 利用率为 50 一个核心为 100 另一个核心为 宽松 当 IDE 最小化时
  • TListView 中的中心子项目图像

    Is it possible to fix the drawing of subitem images in a TListView so that they are not cut off on the left hand side as
  • 命名管道性能问题

    我使用命名管道进行 C 和 Delphi 之间的过程间通信 C 使用System IO Pipes包 而 Delphi 使用Libby s pipes pas 不幸的是 通信几乎是高性能的 分析显示通信占用了整个运行时间的 72 其余的用于
  • Delphi 将面板流传输至文件

    今天我有一个关于将表单的一部分流式传输到文件的问题 在此示例中 我使用 Tmemo 而不是文件来查看流 这是我的表格 表单右上角的面板有一些控件 如标签 编辑等 使用 保存面板 按钮将面板保存在 TStream 上 这里是代码 proced
  • 将delphi stringgrid导出到excel

    我正在尝试将数据从delphi 7 中的stringgrid 导出到microsoft excel 我一直在使用这段代码来做到这一点 objExcel TExcelApplication Create nil objExcel Visibl

随机推荐

  • 卤素键盘输入示例和取消订阅事件?

    如何取消订阅除 HandleKey 之外的其他操作的键盘事件键盘输入示例 https github com slamdata purescript halogen blob master examples keyboard input sr
  • 缓冲区溢出 - 普通用户中的 SegFaults

    下面是我的代码 包括易受攻击的程序 stack c 和我的漏洞利用程序 exploit c 这段代码适用于教授为 Windows 用户发送的预打包 Ubuntu 9 我有一个朋友在他的计算机上测试了它 但在我在 iMac 上运行的 Ubun
  • 如何从 Android 设备访问本地 REST api?

    我的计算机上本地运行着一个 spring REST api 我想使用这个 api 进行 android 开发 这是我的获取请求 public static String sendGet final String url StringBuil
  • 是否可以通过动态 LINQ 进行注入?

    使用动态 LINQ 库 link http weblogs asp net scottgu archive 2008 01 07 dynamic linq part 1 using the linq dynamic query librar
  • jquery文档主体一键事件

    有人可以帮我解决这个问题吗 我有一个按钮 单击它会显示某个 div 这个 div 有几个后代 现在 我想要的是 当我单击文档中的其他位置时 但在这些后代中却没有这个div消失了 我的想法是使用 not 选择器 如下所示 button cli
  • Spark中“RDD可以存储在内存中”是什么意思?

    Spark的介绍中说 RDD 可以在查询之间存储在内存中 无需复制 http spark apache org research html 据我所知 您必须使用手动缓存 RDD cache or persist 如果我不采取任何措施 如下所
  • Windows subprocess.Popen 不带 shell=True 的批处理文件

    我有一个运行的函数lessc 安装有npm install g less gt gt gt import subprocess gt gt gt subprocess Popen lessc Traceback most recent ca
  • 在打开的 Windows 资源管理器中选择一个文件

    我有以下代码 它将启动 Windows 资源管理器并选择一个文件并最大化资源管理器 然后它将查找 Windows 资源管理器并将其最小化 我做了最大化 最小化 这样我就不必手动执行此操作 我知道很懒 我在代码中设置了此设置 仅在文件夹未打开
  • JavaScript 倒计时器:计算距离美国东部标准时间午夜还有多少秒

    我正在使用在 JavaScript 中运行的 24 小时倒计时器 目前 它使用秒作为其基本测量单位 我在这里列出了 86400 但我想计算每天到午夜 东部标准时间 5 还剩多少秒 有人可以演示我如何定义该值并将其插入 时间 变量吗 我已经看
  • 创建 Pandas 数据框,并将列表作为行中的值

    如何按以下格式创建 pandas 数据框 A B C D 0 1 2 3 4 2 3 4 5 4 5 5 6 6 3 4 5 1 2 3 5 6 3 4 6 6 3 4 5 7 2 6 3 4 2 8 9 6 7 5 7 9 5 3 7 9
  • JavaScriptendsWith 在 IEv10 中不起作用?

    我正在尝试使用endsWith 比较JavaScript 中的两个字符串 例如 var isValid string1 endsWith string2 它在 Google Chrome 和 Mozilla 中运行良好 当涉及 IE 时 它
  • Stripe - 如何将小数金额发送到 API 进行付款?

    我正在将电子商务平台从使用 SagePay 迁移到 Stripe 文档显示使用amount的图1099和货币gbp https stripe com docs payments accept a payment web create pay
  • nginx 背后的 Unicorn 与 Passenger Standalone [已关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Facebook API - “我所有的喜欢”查询

    是否可以找回all用户曾经 喜欢 过这些帖子吗 质量等级 API 我找不到办法 FB 专家们 我们将不胜感激您的帮助 Use the Stream get http wiki developers facebook com index ph
  • 编译时引发的内部错误(NullPointerException)intellij Idea

    我正在尝试启动一个项目 java groovy on gradle 完成构建后 但是 我在两者开始时都遇到了错误main或使用以下堆栈跟踪进行单元测试 Error Internal error java lang NullPointerEx
  • 类型“Observable”上不存在属性“switchMap”

    当尝试将 switchMap 运算符应用于我的 Observable 时 我收到以下错误消息 类型 Observable 上不存在属性 switchMap 我目前使用 rxjs 版本 5 5 2 在我的组件中 我将其导入如下 import
  • Android 避免缓存

    http client DefaultHttpClient httpClient new DefaultHttpClient HttpEntity httpEntity null HttpResponse httpResponse null
  • Mono 和 C# IOCP:这是一个好主意吗?

    我正在将 C 应用程序移植到在其服务器上使用 IOCP 的 C mono 可以像 windows 一样处理 IOCP 吗 我会获得与 C 相当的性能还是应该尝试其他方法 thanks IOCP 的主要开销是 IO 而不是语言 你should
  • 禁用统计/分析 Javascript

    我的免费虚拟主机将分析 javascript 附加到所有 PHP 和 HTML 文件中 这很好 除了我使用 nuSoap 为我正在处理的 Web 服务创建 WSDL 文件 我的该死的主机将其添加 到我的 php 生成的 WSDL 文件中 有
  • 如何绘制“非”彩色文本?

    我正在寻找一种用反转颜色绘制文本的方法 对于形状 我们有TPenMode可以设置为pmNot 但我们不能对文本执行此操作 我该怎么做呢 这是这样做的 procedure DrawTextNOT const hDC HDC const Fon