DBEditEh/Edit 文本框内容空白时加上提示文字,输入内容时提示文字不显示
当文本框没有输入内容且输入焦点不在文本框时,显示提示文字:“请输入帐号”
当文本框得到输入焦点时提示文字不显示
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 文本框内容空白时加上提示文字,输入内容时提示文字不显示的更多相关文章
- jQuery—— jQuery get方法+一般处理程序处理文本框内容
网上常常看到这种交互方式,当去一个站点注冊username的时候,假设文本框内没有输入数据,或者数据输入的内容格式不正确.就会将文本框变成红色来提示你输入的内容有误. 自己将这个文本框验证的方式改变了 ...
- c#文本框限制输入内容
//限制输入不能为中文和全角 private void zhbh_KeyPress(object sender, KeyPressEventArgs e) { ...
- Python Tkinter Entry(文本框)
Python学习记录--关于Tkinter Entry(文本框)的选项.方法说明,以及一些示例. 属性(Options) background(bg) borderwidth(bd) cursor e ...
- 文本框的onchange事件,如何兼容各大浏览器
在项目中经常会遇到对用户输入的数据进行实时校验,而不是等文本框失去焦点或用户手动点击校验. 首先分析下在哪些情况下文本框会产生change事件. 1.用户通过键盘入正常字符时: 2.用户通过键盘输入非 ...
- 第三百九十五节,Django+Xadmin打造上线标准的在线教育平台—Xadmin集成富文本框
第三百九十五节,Django+Xadmin打造上线标准的在线教育平台—Xadmin集成富文本框 首先安装DjangoUeditor3模块 Ueditor HTML编辑器是百度开源的HTML编辑器 下载 ...
- tkinter学习-文本框
阅读目录 Entry 输入框 Text 文本框 Entry: 说明:输入控件,用于显示简单的文本内容 属性:在输入框中用代码添加和删除内容,同样也是用insert()和delete()方法 from ...
- 【cl】测试用例【文本框-电子邮箱】
电子邮箱控件用例: 1.只输入字母,如:abc 2.只输入数字,如:123 3.空白.空格或回车等 4.特殊的字符,如:¥,$等 5.上述四种的组合 6.不正确的邮箱组合: ①.abc@sohucom ...
- Jquery / js 判断数据类型方法(限制文本框类型输入)
当想要判断文本框中的值是否为自己想要的类型时,可以通过一些方法作出判断,这里对于光标离开文本框时判断文本框中输入的是否是数值类型,如果不是,做出提示 $("#WORKYEARS") ...
- java 24 - 6 GUI之 创建只能输入数字的文本框
需求: 创建一个含有标签和文本框的窗体,其中文本框只能输入数字 步骤:(大致上) 创建窗体对象 创建标签对象 创建文本框对象 把组件添加到窗体中 设置标签的监听事件,对键盘按下的数据进行监听 设置窗体 ...
- JS给文本框赋值后,在页面后台取不到文本框值的解决方法
转自:http://www.cnblogs.com/qiaohd/archive/2012/03/23/2413660.html (ReadOnly.disabled 都有可能造成取值取不到) 开发一 ...
随机推荐
- nop4.3 用户权限管理
权限管理涉及到5张表: //用户表 select * from Customer //角色表select * from CustomerRole //用户和角色对应关系select * from Cu ...
- xd p4 WEB源码拓展
WEB 源码在安全测试中是非常重要的信息来源,可以用来代码审计漏洞也可以用来做信息突破口,其中 WEB 源码有很多技术需要简明分析. 知识点 关于 WEB 源码目录结构 后台目录.模板目录.数据库目录 ...
- SAP管理员SAP*和DDIC被锁定后如何解锁或重置密码
SAP*初始化密码是06071992或passDDIC默认密码为19920706 环境信息:win server2003,SQL Server2008 R2 账号信息存在于数据库usr02表中,1.删 ...
- vue store用法
import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) 首字母不能大写 export default new Vuex.Store({ ...
- JDBC之Driver和DriverMananger
JDBC之Driver和DriverMananger 目录 JDBC之Driver和DriverMananger Java和MySQL的关系 JDBC 演变过程 驱动加载入内存的过程 Oracle加载 ...
- 小米手机MIUI12获取hci.log的方法记录
按照之前的方式,开发者选项打开获取蓝牙HCI的log开关,但是在本地一直找不到log. 在网上查了很久资料,终于找到有用的方法了.记录一下. 感谢大佬 https://www.jianshu.com/ ...
- vue的表单
你可以用 v-model 指令在表单控件元素上创建双向数据绑定. 输入框 实例中演示了 input 和 textarea 元素中使用 v-model 实现双向数据绑定: <!DOCTYPE ht ...
- 构建一个自己的CocoaPods库
1.首先去github 创建一个项目 .然后将你的代码传到github 2.终端 进入项目根目录 生成podspec pod spec create SJTestPod 注意生成的pod一定要唯一.不 ...
- Mysql Dao
1 package dao; 2 3 import java.sql.Connection; 4 import java.sql.PreparedStatement; 5 import java.sq ...
- k8s排错(Unhealthy)
1,组件 Unhealthy 通过kubeadm安装好kubernetes v1.18.6 查看集群状态,发现组件controller-manager 和scheduler状态 Unhealthy