如何为Delphi编写蓝色文本,并在您开始输入文字时将其删除

问题描述

我需要在编辑内容上写蓝色文本,以便我在运行时开始在其上输入内容时就将其删除。 请您帮我解决一下。这是给Delphi 2007的

预先感谢

解决方法

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

您可以选择当前文本,以便随后的用户输入将替换所选内容。您可以使用标准TEditSelStart / SelLength属性,AutoSelect属性或SelectAll()方法来执行此操作。如果希望在TEdit没有输入焦点时突出显示突出显示,则还可以考虑将其HideSelection属性设置为false。

或者,您可能会想到“提示横幅”,这是XP中引入的一项功能,只要它不包含实际文本,就可以在编辑控件中显示提示文本。您可以在标准TEdit中设置此提示文本,方法是通过Win32 API EM_SETCUEBANNER函数或SendMessage()宏(在Delphi 2009及更高版本中,{ {1}}为此拥有Edit_SetCueBannerText()属性)。请注意,您需要在应用程序中TextHint才能使用此功能。

,

从我的头顶出来,未经测试:

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