uniGUI之uniEdit(23)
主要新加属性;
a]EmptyText在没有文本里显示的背景文本。
UniEdit1.EmptyText:='背景文字';


b]作为其他控件的编辑输入控件。
UniDBGrid1.Columns[].Filtering.Editor := UniEdit1; //十过滤 编辑控件 放在hidenPanel
UniDBGrid1.Columns[].Editor := UniEdit1; //双击 编辑控件 放在hidenPanel UniEdit1.CharEOL:=#; //表示回车 确定 开始 这很重要
c]ClearButton清空按钮


procedure TMainForm.UniFormCreate(Sender: TObject);
begin
UniEdit1.ClearButton:=true;
end;
d]左边显示文本


uniEdit1.FieldLabel:='姓名'; //文本值
uniEdit1.FieldLabelAlign:=laRight; //靠右显示
//uniEdit1.FieldLabelSeparator:=':';//分隔符,默认为 : 可以不设置
uniEdit1.FieldLabelWidth:= //文本宽度
e]回车触发事件CharEOL:=#13


然后在OnKeyPress写事件
procedure TMainForm.UniEdit1KeyPress(Sender: TObject; var Key: Char);
begin
UniMemo1.Lines.Add(UniEdit1.Text);
end;
//等价于,例子D:\Program Files\FMSoft\Framework\uniGUI\Demos\Desktop\AllFeaturesDemo Form Controls/CharEOL
procedure TMainForm.UniEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key = #) then begin
UniMemo1.Lines.Add(UniEdit1.Text);
end;
end;
f]空白内容,红色提示

var
tmpColor: TColor;
begin
if Trim(UniEdit1.Text) = '' then
begin
tmpColor := UniEdit1.Color;
UniEdit1.Color := clRed;
MessageDlg('【设备型号】 不能为空!', mtConfirmation, [mbOK],
procedure(Sender: TComponent; Res: Integer)
begin
if Res = mrOK then
UniEdit1.Color := tmpColor;
end); Exit;
end;
end;
h]右边感叹号提示 必填

1】设计时uniEdit1.text必须有,就是要经历过一个 有值 再无值的 过程 触动。
2】在
procedure TMainForm.UniFormAfterShow(Sender: TObject);
begin
uniedit1.Text:='';//将文本清空
end;

function beforeInit(sender, config)
{ Ext.apply(sender,{allowBlank:false,vtype:'',msgTarget : 'side'});}
function beforeInit(sender, config)
{
Ext.apply(sender,{allowBlank:false,vtype:'email',msgTarget : 'side'});
}
function beforeInit(sender, config)
{
var timeTest = /^([1-9]|1[0-9])[0-5][0-9])(\s[a|p]m)$/i;
Ext.apply(Ext.form.field.VTypes, {
// vtype validation function
time: function(val, field) {
return timeTest.test(val);
},
// vtype Text property: The error text to display when the validation function returns false
timeText: 'Not a valid time. Must be in the format "12:34 PM".',
// vtype Mask property: The keystroke filter mask
timeMask: /[\d\s:amp]/i
}); Ext.apply(sender,{
name: 'departureTime',
vtype: 'time',
msgTarget : 'side'
});
}
12:34 PM
function beforeInit(sender, config)
{
// custom Vtype for vtype:'IPAddress'
Ext.apply(Ext.form.field.VTypes, {
IPAddress: function(v) {
return /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(v);
},
IPAddressText: 'Must be a numeric IP address',
IPAddressMask: /[\d\.]/i
}); Ext.apply(sender,{
name: 'IPAddress',
vtype: 'IPAddress',
msgTarget : 'side'
});
}
IP地址
function beforeInit(sender, config)
{
// custom Vtype for vtype:'AlphaNum'
Ext.apply(Ext.form.field.VTypes, {
AlphaNum: function(v) {
return /^[a-zA-Z0-9_]+$/i.test(v);
},
AlphaNumText: 'Must be an alphanumeric word',
// This mask filter invalid keystrokes
AlphaNumMask: /[a-z0-9]/i
}); Ext.apply(sender,{
vtype: 'AlphaNum',
msgTarget : 'side'
});
}
AlphaNumber
function beforeInit(sender, config)
{
var url = /(((^https?)|(^ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@`~=%!]*)(\.\w{2,})?)*\/?)/i;
// custom Vtype for vtype:'url'
Ext.apply(Ext.form.field.VTypes, {
url: function(v) {
return url.test(v);
},
urlText: 'Must be a valid URL (ie. http, https or ftp)'
}); Ext.apply(sender,{
vtype: 'url',
msgTarget : 'side'
});
}
URL
uniGUI之uniEdit(23)的更多相关文章
- uniGUI学习汇总
UniGUI之UniLabel(31) uniGUI之自定义JS事件动作ClientEvents(30) uniGUI之文件下载(29) uniGUI之FDQuery(28) uniGUI之UniPo ...
- UniGUI 之UniDBGrid(05)
UniGUI 之UniDBGrid(05) 目录1]DataSource设置2]显示MEMO类型里的文字3]显示悬浮提示4]显示当前记录及总记录数5]读取所有记录,及分页6]在前面加上序号列7]不显示 ...
- uniGUI经验几则
uniGUI经验几则 (2015-11-07 21:42:41) 转载▼ 标签: it 分类: uniGUI 1.uniTimer的妙用 很多时候,都会遇到在一个uniForm或者uniFrame加载 ...
- [控件]unigui移动端下Unidatepicker时间显示解决方案
[控件]unigui移动端下Unidatepicker时间显示解决方案 http://tz10000.com/kong-jian-unigui-yi-dong-duan-xia-unidatepick ...
- Java开发中的23种设计模式详解
[放弃了原文访问者模式的Demo,自己写了一个新使用场景的Demo,加上了自己的理解] [源码地址:https://github.com/leon66666/DesignPattern] 一.设计模式 ...
- ILJMALL project过程中遇到Fragment嵌套问题:IllegalArgumentException: Binary XML file line #23: Duplicate id
出现场景:当点击"分类"再返回"首页"时,发生error退出 BUG描述:Caused by: java.lang.IllegalArgumentExcep ...
- CSharpGL(23)用ComputeShader实现一个简单的ParticleSimulator
CSharpGL(23)用ComputeShader实现一个简单的ParticleSimulator 我还没有用过Compute Shader,所以现在把红宝书里的例子拿来了,加入CSharpGL中. ...
- ABP(现代ASP.NET样板开发框架)系列之23、ABP展现层——异常处理
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之23.ABP展现层——异常处理 ABP是“ASP.NET Boilerplate Project (ASP.NET ...
- Java开发中的23种设计模式详解(转)
设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
随机推荐
- linux中卸载mysql以及安装yum
卸载mysql:https://blog.csdn.net/qq_41829904/article/details/92966943 链接2:https://www.cnblogs.com/nickn ...
- [python] VSCode+Jupyter 安装步骤以及注意事项
1. 安装Python2. 安装Jupyter, pip install 安装Jupyter(若使用Anaconda,则需要将其添加到环境变量中)3. 将Python的Scripts文件夹添加到系统环 ...
- c++中sort函数调用报错Expression : invalid operator <的内部原理
当我们调用sort函数进行排序时,中的比较函数如果写成如下 bool cmp(const int &a, const int &b) { if(a!=b) return a<b; ...
- Android学习14
Fragment Fragment是依赖于Activity的,不能独立存在的. 一个Activity里可以有多个Fragment. 一个Fragment可以被多个Activity重用. Fragmen ...
- 【C语言】(指针) 将两个数排序
原理就不讲了,这里用来理解指针的使用方法 代码1: #include <stdio.h> int main() { int a, b;/* 实际变量的声明 */ int* p, * q;/ ...
- xampp 配置多域名工程 解决 Access forbidden!
XAMPP虚拟主机配置,多域名绑定访问本地站点 XAMPP有时候你需要一些顶级域名访问方式来访问你本地的项目也就是虚拟主机配置,这时候就需要配置虚拟主机,给你的目录绑定一个域名,实现多域名绑定访问. ...
- 题解 SP19148【INS14G - Kill them All】
SP19148[INS14G - Kill them All] 前置知识:组合数 乘法逆元 感觉其他博客讲的不是很清楚,也没有说组合数公式是怎么来的,我这样数论极菜的萌新看了好久才想明白qwq.. 还 ...
- js-秒数转为XX时XX分XX秒(用于计算剩余时间或倒计时)
export default { data() { return { hours: null, minute: null, second: null } }, methods: { // 秒数 转为 ...
- wampserver3.0.6 外网 不能访问
# 开始 今天在服务器上安装了wampserver3.0.6 然后在我的电脑浏览器上面打开服务器ip提示 Forbidden 下面一行小字提示没有权限访问"/"目录 # 解决 打开 ...
- [蓝桥杯][基础训练]2n皇后问题
Description 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行 ...