当文本框没有输入内容且输入焦点不在文本框时,显示提示文字:“请输入帐号”
当文本框得到输入焦点时提示文字不显示

unit SkinHintEdit;  

interface  

uses
Windows,Classes,Controls,SysUtils,Messages,StdCtrls,Forms,
Graphics; const
//提示文字颜色
CONST_DEF_HELPTEXT_FONTCOLOR=clGray;
CONST_DEF_HELPTEXT_FONTNAME='Tahoma';
CONST_DEF_HELPTEXT_FONTSIZE=9;
CONST_DEF_HELPTEXT_FONTSTYLE=[]; type
TSkinHintEdit=class(TCustomEdit)
private
FHelpText: WideString;
FHelpTextFont: TFont;
procedure SetHelpText(const Value: WideString);
procedure SetHelpTextFont(const Value: TFont);
protected
procedure WMPaint(var Message:TMessage);message WM_PAINT;
public
constructor Create(AOwner:TComponent);override;
destructor Destroy;override;
published
///////////////自定义扩展属性/////////////////
//指导性文字字体颜色
property HelpTextFont:TFont read FHelpTextFont write SetHelpTextFont;
//指导性文字
property HelpText:WideString read FHelpText write SetHelpText;
///////////////默认文本框自带属性////////////
property Align;
property Alignment;
property Anchors;
property AutoSelect;
property AutoSize;
property BevelEdges;
property BevelInner;
property BevelKind default bkNone;
property BevelOuter;
property BevelWidth;
property BiDiMode;
property BorderStyle;
property CharCase;
property Color;
property Constraints;
property Ctl3D;
property DoubleBuffered;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property Font;
property HideSelection;
property ImeMode;
property ImeName;
property MaxLength;
property NumbersOnly;
property OEMConvert;
property ParentBiDiMode;
property ParentColor;
property ParentCtl3D;
property ParentDoubleBuffered;
property ParentFont;
property ParentShowHint;
property PasswordChar;
property PopupMenu;
property ReadOnly;
property ShowHint;
property TabOrder;
property TabStop;
property Text;
property TextHint;
property Touch;
property Visible;
property OnChange;
property OnClick;
property OnContextPopup;
property OnDblClick;
property OnDragDrop;
property OnDragOver;
property OnEndDock;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnGesture;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseActivate;
property OnMouseDown;
property OnMouseEnter;
property OnMouseLeave;
property OnMouseMove;
property OnMouseUp;
property OnStartDock;
property OnStartDrag;
end; procedure Register; implementation procedure Register;
begin
RegisterComponents('SkinEngine',[TSkinHintEdit]);
end; { TSkinHintEdit } constructor TSkinHintEdit.Create(AOwner: TComponent);
begin
FHelpText:='';
//提示文字颜色
FHelpTextFont:=TFont.Create;
FHelpTextFont.Color:=CONST_DEF_HELPTEXT_FONTCOLOR;
FHelpTextFont.Name:=CONST_DEF_HELPTEXT_FONTNAME;
FHelpTextFont.Size:=CONST_DEF_HELPTEXT_FONTSIZE;
FHelpTextFont.Style:=CONST_DEF_HELPTEXT_FONTSTYLE;
inherited Create(AOwner);
end; destructor TSkinHintEdit.Destroy;
begin
FreeAndNil(FHelpTextFont);
inherited;
end; procedure TSkinHintEdit.SetHelpText(const Value: WideString);
begin
FHelpText := Value;
end; procedure TSkinHintEdit.SetHelpTextFont(const Value: TFont);
begin
FHelpTextFont.Assign(Value);
Invalidate;
end; procedure TSkinHintEdit.WMPaint(var Message: TMessage);
var
ClientDC:HDC;
ClientCanvas:TCanvas;
HelpTextDrawLeft,
HelpTextDrawTop:Integer;
begin
Inherited;
if Not Focused and (Text='') and (HelpText<>'') then
begin
ClientDC:=GetDC(Handle);
Try
ClientCanvas:=TCanvas.Create;
ClientCanvas.Handle:=ClientDC;
ClientCanvas.Font.Assign(FHelpTextFont);
HelpTextDrawLeft:=0;
HelpTextDrawTop:=(Height-ClientCanvas.TextHeight(FHelpText) ) div 2-2;
ClientCanvas.TextOut(HelpTextDrawLeft,HelpTextDrawTop,FHelpText);
Finally
ReleaseDC(Handle,ClientDC);
ClientCanvas.Free;
End;
end;
end; end.

DBEditEh/Edit 文本框内容空白时加上提示文字,输入内容时提示文字不显示的更多相关文章

  1. jQuery—— jQuery get方法+一般处理程序处理文本框内容

    网上常常看到这种交互方式,当去一个站点注冊username的时候,假设文本框内没有输入数据,或者数据输入的内容格式不正确.就会将文本框变成红色来提示你输入的内容有误. 自己将这个文本框验证的方式改变了 ...

  2. c#文本框限制输入内容

         //限制输入不能为中文和全角         private void zhbh_KeyPress(object sender, KeyPressEventArgs e)         { ...

  3. Python Tkinter Entry(文本框)

    Python学习记录--关于Tkinter Entry(文本框)的选项.方法说明,以及一些示例. 属性(Options) background(bg) borderwidth(bd) cursor e ...

  4. 文本框的onchange事件,如何兼容各大浏览器

    在项目中经常会遇到对用户输入的数据进行实时校验,而不是等文本框失去焦点或用户手动点击校验. 首先分析下在哪些情况下文本框会产生change事件. 1.用户通过键盘入正常字符时: 2.用户通过键盘输入非 ...

  5. 第三百九十五节,Django+Xadmin打造上线标准的在线教育平台—Xadmin集成富文本框

    第三百九十五节,Django+Xadmin打造上线标准的在线教育平台—Xadmin集成富文本框 首先安装DjangoUeditor3模块 Ueditor HTML编辑器是百度开源的HTML编辑器 下载 ...

  6. tkinter学习-文本框

    阅读目录 Entry 输入框 Text 文本框 Entry: 说明:输入控件,用于显示简单的文本内容 属性:在输入框中用代码添加和删除内容,同样也是用insert()和delete()方法 from ...

  7. 【cl】测试用例【文本框-电子邮箱】

    电子邮箱控件用例: 1.只输入字母,如:abc 2.只输入数字,如:123 3.空白.空格或回车等 4.特殊的字符,如:¥,$等 5.上述四种的组合 6.不正确的邮箱组合: ①.abc@sohucom ...

  8. Jquery / js 判断数据类型方法(限制文本框类型输入)

    当想要判断文本框中的值是否为自己想要的类型时,可以通过一些方法作出判断,这里对于光标离开文本框时判断文本框中输入的是否是数值类型,如果不是,做出提示 $("#WORKYEARS") ...

  9. java 24 - 6 GUI之 创建只能输入数字的文本框

    需求: 创建一个含有标签和文本框的窗体,其中文本框只能输入数字 步骤:(大致上) 创建窗体对象 创建标签对象 创建文本框对象 把组件添加到窗体中 设置标签的监听事件,对键盘按下的数据进行监听 设置窗体 ...

  10. JS给文本框赋值后,在页面后台取不到文本框值的解决方法

    转自:http://www.cnblogs.com/qiaohd/archive/2012/03/23/2413660.html (ReadOnly.disabled 都有可能造成取值取不到) 开发一 ...

随机推荐

  1. openssl的自签名证书不被信任问题

    1.不同的浏览器安全策略不同 1.1谷歌系的会提示没有绑定域名. 此服务器无法证实它就是 192.168.0.127 - 它的安全证书没有指定主题备用名称(Subject Alternative Na ...

  2. protobuf笔记

    protobuf的enum .proto的enum类型在编译后,是C++的enum

  3. 前后端API交互数据加密——AES与RSA混合加密完整实例(转载)

    前言 前段时间看到一篇文章讲如何保证API调用时数据的安全性(传送门:https://blog.csdn.net/ityouknow/article/details/80603617),文中讲到利用R ...

  4. HELM的使用

    一.helm的主要功能 1.创建新的chart 2.chart打包成tgz格式 3.上传chart到chart仓库或从仓库中下载chart 4.在kubernetes集群中安装或卸载chart 5.管 ...

  5. plsql和instantclient版本都对,依然不能初始化oci.dll解决办法

    这里写到 "初始化错误,不能初始化 oci.dll, 请确认你安装的是64位的Oracle客户端 " ,这个描述还是非常的到位啊,我一检查,果然下载的客户端是32位的,在确保自己的 ...

  6. 312. 戳气球 (Hard)

    问题描述 312. 戳气球 (Hard) 有 n 个气球,编号为 0 到 n - 1,每个气球上都标有一个数字,这些数字存在数组 nums 中. 现在要求你戳破所有的气球.戳破第 i 个气球,你可以获 ...

  7. Java本地缓存解决方案---使用Google的CacheBuilder

    一.背景 当业务实现上需要用到本地缓存,来解决一些数据量相对较小但是频繁访问数据的场景,可以采用Google的CacheBuilder解决方案. 二.代码实现 1. 首先在maven中引入下面的包 & ...

  8. 2022-04-25内部群每日三题-清辉PMP

    1.项目章程批准之后,项目经理开始使用储备分析进行预算工作.哪些文件支持这项工作? A.项目资金需求.成本基准和项目储备计划 B.范围基准.风险登记册和项目进度计划 C.质量管理计划.项目资金需求和风 ...

  9. MongoDB和sql语句的对照

    左边是mongodb查询语句,右边是sql语句.对照着用,挺方便. db.users.find() select * from users db.users.find({"age" ...

  10. holiday06-英语语法-语序和五种基本句式

    第六天 英语五种基本句式: 基本句式一:S V (主+谓) 基本句式二:S V P (主+系+表) 基本句式三:S V O (主+谓+宾) 基本句式四:S V o O(主+谓+间宾+直宾) 基本句式五 ...