社区
Delphi
帖子详情
请问格式化Edit.Text的问题?还有TDateTime的格式化问题?
馮強
2002-07-15 03:27:00
请问,在输入界面时如何控制Edit.Text框中输入的内容,比如,要求输入日期,也就是说1-31,并且根据大小月或闰年的不同,确定不同的边界。
另外,在中文Windows中,TDateTime的格式为YYYY-MM-DD,如果我使其为MM/DD/YYYY或YYYY.MM.DD,该如何格式化呢?
...全文
91
3
打赏
收藏
请问格式化Edit.Text的问题?还有TDateTime的格式化问题?
请问,在输入界面时如何控制Edit.Text框中输入的内容,比如,要求输入日期,也就是说1-31,并且根据大小月或闰年的不同,确定不同的边界。 另外,在中文Windows中,TDateTime的格式为YYYY-MM-DD,如果我使其为MM/DD/YYYY或YYYY.MM.DD,该如何格式化呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zfk51069
2002-07-15
打赏
举报
回复
(1) 你如果不用Tdatetimepicker,那只有自己写了,并不是很难的,主要是判断
是否闰年,有现成的函数isleapyear(Year),闰年二月29天,否则28天。
(2)用函数formatdatetime就可以了
ikumei
2002-07-15
打赏
举报
回复
用Tmaskedit,确定其mask值,具体可以看帮助
日期格式用FormatDateTime函数,
如FormatDateTime('yyyy-mm-dd',date)
具体的看帮助
CeleronII
2002-07-15
打赏
举报
回复
formatdatetime(now,'MM/DD/YYYY')
formatdatetime(now,'YYYY.MM.DD');
DELPHI Variant变量的使用技巧
delphi 为了完全支持OLE,32位Delphi 增加了Variant 数据类型,本节将从宏观角度来分析这种数据类型。实际上,Variant类型对Pascal语言有普遍而深入的影响,Delphi 控件库中与OLE 无关的地方也使用到这种类型。 Variant变量没有类型 一般说来,你可以用Variant 变量存储任何数据类型,对它执行各种操作和类型转换。需要注意的是:这违反了Pascal 语言的一贯原则,有悖于良好的编程习惯。variant 变量的类型检查和计算在运行期间才进行,编译器不会提示代码中的潜在错误,这些错误在进一步测试中才能发现。总之,你可以认为包含variant变量的代码是解释性代码,正如解释性代码一样,许多操作直到执行时才能知道,这对代码运行速度会有很大的影响。 上面对Variant 类型的使用提出了警告,现在来看看Variant 类型究竟能干什么。基本上说,如果声明了一个variant 变量: var V: Variant; 你就可以把各种不同类型的值赋给它: V := 10; V := 'Hello, World'; V := 45.55; 一旦得到一个variant 值,你可以把它拷贝给任何兼容或不兼容的数据类型。如果你把值赋给不兼容的数据类型,Delphi 会力尽所能进行转换,无法转换则颁布一个运行时间错误。实际上,variant变量中不仅包含了数据还包含有类型信息,并允许一系列运行时间操作,这些操作很方便,但运行速度慢且安全性差。 见例VariTest,它是上面代码的扩展。窗体上有三个编辑框,一对按钮,第一个按钮的OnClick 事件代码如下: procedure TForm1.Button1Click(Sender: TObject); var V: Variant; begin V := 10;
Edit
1.
Text
:= V; V := 'Hello, World';
Edit
2.
Text
:= V; V := 45.55;
Edit
3.
Text
:= V; end; 很有趣是不是?你可以把一个值为字符串的variant 变量赋给编辑框
Text
属性,还可以把值为整数或浮点数的variant 变量赋给
Text
属性。正如你在图10.1中所看到的,一切正常。 (图10.1)按Assign按钮后,例VariTest的输出结果 图 10.1: 例 VariTest 的 Assign 按钮 Click 事件输出结果 更糟糕的是:你还可以用variant变量计算数值,从第二个按钮的Click事件代码就可看到这一点: procedure TForm1.Button2Click(Sender: TObject); var V: Variant; N: Integer; begin V :=
Edit
1.
Text
; N := Integer(V) * 2; V := N;
Edit
1.
Text
:= V; end; 至少这种代码带有一定危险性,如果第一个编辑框包含了一个数字,那么一切运行正常;如果不是,将会引发异常。这里再重申一遍,如果不到万不得以,不要随便使用Variant 类型,还是应坚持使用传统的Pascal 数据类型和类型检查方法。在Delphi 和 VCL中,variant变量主要是用于 OLE 支持和数据库域的访问。 Variant类型内部结构 Delphi中定义了一个 variant 记录类型,TVarData,它与Variant 类型有相同的内存布局。你可以通过TVarData访问variant变量的实际类型。TVarData 结构中包含了Variant类型信息(由Vtype域表示)、一些保留域及当前值。 VType域的取值包括OLE 自动化中的所有数据类型,这些类型通常叫OLE 类型或variant 类型。以下是variant 类型的完整列表,按字母顺序排列: varArray varBoolean varByRef varCurrency varDate varDispatch varDouble varEmpty varError varInteger varNull varOleStr varSingle varSmallint varString varTypeMask varUnknown varVariant 你可以在Delphi 帮助系统的variants 主题下找到这些类型的说明。 还有许多操作variant 变量的函数,你可以用它们进行特定的类型转换,或通过它们获取variant变量的类型信息(例如VarType 函数),当你用variant变量写表达式时,Delphi会自动调用这些类型转换和赋值函数。另外还有操作variant 数组的例程,你可以通过帮助文件的Variant support routines 主题了解相关内容。 Variant类型运行很慢! Variant 类型代码运行很慢,不仅数据类型转换如此,两个值为整数的Variant 变量相加也是如此。它们几乎跟Visual Basic这种解释性代码一样慢!为了比较Variant变量和整型变量的运行速度,请看例VSpeed 。 程序中设置了一个循环,记录运行时间并在进程条中显示运行状态。下面是基于variant类型的一段代码,基于整型的代码与此相似: procedure TForm1.Button1Click(Sender: TObject); var time1, time2: T
DateTime
; n1, n2: Variant; begin time1 := Now; n1 := 0; n2 := 0; ProgressBar1.Position := 0; while n1 < 5000000 do begin n2 := n2 + n1; Inc (n1); if (n1 mod 50000) = 0 then begin ProgressBar1.Position := n1 div 50000; Application.ProcessMessages; end; end; // we must use the result Total := n2; time2 := Now; Label1.Caption := Format
DateTime
( 'n:ss', Time2-Time1) + ' seconds'; end; 记时这段代码值得一看,因为你可以把它用到任何类型的性能测试中。正如你所看到的,程序用Now 函数获取当前的时间,用Format
DateTime
函数
格式化
时间差,输出结果以分("n")和秒("ss")表示。除此之外,你可以用Windows API的GetTickCount 函数,该函数能精确显示操作系统启动后至当前的毫秒数。 从上例可见两者的速度差异非常之大,以至于不用精确记时也能看到这种差异。图10.2是在本人计算机上运行程序看到的结果。当然运行结果取决于运行程序的计算机,但是两者的数值比不会有太大变化。
delphi11(实际上是delphi10.5)补丁
一、IDE 1、对IDE的高DPI支持,涵盖了最新的4k+显示器,整个字体和图标更干净、更清晰。 2、多显示器和多窗口改进:在多个窗口中同时设计和编辑同一个表单的代码 3、完全重建的欢迎页,具有原生的外观和感觉,以及适合IDE的UI,并可自定义布局和内容 4、C++代码
格式化
器。使用clang-format自动布局你的C++代码 5、改进了对VCL和IDE的远程桌面支持 6、FireMonkey设计时指南。通过可视化的线条和增强的边距和填充支持更快地进行原型设计 二、VCL 1、丰富的编辑组件更新删除了XP的依赖性,并为TRich
Edit
控件引入了新的功能。 2、VCL样式增加了设计时支持:通过在设计时立即看到你的样式表格和控件在运行时的样子,使时尚的UI原型更快。 3、增加了对TreeViews中CheckBoxes的支持,每个节点都支持3种状态(部分、变暗、排除)以帮助定制UI。 4、新的TDBLabeled
Edit
组件提供了TLabel
Edit
的数据感知版本,以加快原型设计。 5、大量的VCL改进,包括默认的表格大小和字体,例外对话框的复制按钮,备忘录和Rich
Edit
的边距等等。 三、FMX 1、改进了对Windows和桌面的FMX高DPI支持,桌面UI明显优越 2、在WebBrowser组件中支持微软的WebView 2控件(Edge Chromium)。 3、支持最新的Android 30 API和最新的计费API,并迁移到使用AndroidX库 4、Android支持多个classes.dex文件,简化了对外部Android依赖的整合 四、Platforms 1、Delphi macOS 64位ARM编译器和工具链,包括为Intel/Arm AppStore提交构建通用二进制文件 2、Delphi语言支持二进制小数和数字分离器 3、改进了C++工具链,对C++类型的RTTI进行了大修,包括在Delphi类型上使用typeid。 4、为Delphi类型改进了C++风格的RTTI 5、在Win32和Win64上改进了CMake的质量并大大改进了异常处理。 五、RTL 1、RTL质量重点。TZipFile、大数据结构的64位改进、蓝牙LE 2、System.DateUtils中T
DateTime
的记录帮助器 3、System.SysUtils中TCurrency的Record Helper使货币的工作更加简单和容易。 4、C++ RTL的改进包括在Delphi类中使用make_shared和make_unique,对Delphi字符串的string_view支持,以及Delphi/C++字符串的简单转换。 六、LSP 1、使用Visual Studio Code来编辑Delphi源代码,并具有完整的代码完成功能 2、LSP对Include文件的认识 3、自动重新启动LSP服务器 4、用Tab键自动完成代码 5、支持类辅助工具 6、赋值数组时的数组建议 七、Data 1、新版本中的FireDAC为PostgreSQL、Oracle和Firebird数据库提供了具体的改进。 2、HTTP和REST客户端库已经扩展了超时机制,支持HTTP/2、TLS 1.3、Base64 URL编码。 3、新组件TRESTRequestDataSetAdapter简化了向服务器上传数据集的过程 4、新的低流量RAD Server Lite允许无限制地部署您的多层解决方案,以及完全可扩展的Server引擎。 5、对于DataSnap,REST URL映射逻辑现在是完全可配置的
delphi字符串
格式化
今天搞一个delphi的时间
格式化
字符串的
问题
,网上搜了一下,找了一篇参考了一下。觉得不错,转了一下。 一、Format函数的用法 Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供大家查询之用: 首先看它的声明: function Format(const Format: string; const Args: ar
Delphi的日期时间格式
1、日期时间
格式化
为字符串
edit
2.
text
:=format
datetime
( 'yyyy年mm月dd日hh点nn分ss秒',now);2、将程序初始化为指定的日期时间格式(在程序初始化时处理) System.SysUtils.FormatSettings.DateSeparator := '-'; System.SysUtils.FormatSettings.ShortDateFormat := 'yyyy-mm-dd'; System.SysUtils.FormatSettings.
delphi控件使用
Standard页 1- Tlistbox控件 重要属性items.* 举例,界面设计如下左,执行结果如下右: 代码为 procedure TForm1.Button1Click(Sender: TObject); begin
edit
1.
Text
:= listbox1.Items.Comma
Text
;
edit
2.
Text
:= listbo...
Delphi
5,392
社区成员
262,731
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章