如何为 Delphi 编写蓝色文本,一旦您开始输入,该文本就会立即删除

How do I write blue text for Delphi that deletes as soon as you start typing

我需要在编辑中写上蓝色文本,以便在我开始输入时它会立即删除运行。 请你帮我看看它是如何工作的。这是 Delphi 2007

提前致谢

出乎我的意料,未经测试:

  • 使用标准的 TEdit。
  • 将布尔变量(标志)设置为 TRUE。
  • 在 TEdit 中写蓝色文本。
  • 将编辑光标设置在第一个位置
  • 在 OnKeyDown 中,如果标志为真则将标志设置为假并删除编辑中的文本

你的问题有点模棱两可。它可以用几种不同的方式来解释。

您可以 select 当前文本,以便后续用户输入将替换 selection。如果您希望在 TEdit 没有输入焦点时突出显示可见,您可以在标准 TEdit using its SelStart/SelLength properties, AutoSelect property, or SelectAll() method. You might also consider setting its HideSelection 属性 中执行此操作。

或者,您可能会想到“提示横幅”,这是 XP 中引入的一项功能,用于在编辑控件内显示不包含实际文本的提示文本。您可以通过在您的应用程序中发送一个 EM_SETCUEBANNER window message via the Win32 API SendMessage() function or Edit_SetCueBannerText() macro (in Delphi 2009 and later, TEdit has a TextHint property for this purpose). Note that you need to enable Visual Styles 来在标准 TEdit 中设置此提示文本,以使此功能起作用。