问题描述
我需要在编辑内容上写蓝色文本,以便我在运行时开始在其上输入内容时就将其删除。 请您帮我解决一下。这是给Delphi 2007的
预先感谢
解决方法
您的问题有点模棱两可。可以用几种不同的方式来解释它。
您可以选择当前文本,以便随后的用户输入将替换所选内容。您可以使用标准TEdit
的SelStart
/ 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并删除编辑中的文本