文本框中如何只能输入日期格式?格式为2003-08-06,“-”,“.”的ASC码值是什么?
解决方案 »
- 怎样改变表中某一列的每行值?
- delphi的ide问题
- delphi调用vc 编写的dll中的小问题;
- 三喜临门,散分3000庆祝(之十)
- 我想问一下怎么样控制dxdbgrid里的数据
- 我做了一个小程序,做成了安装盘,但我的安装路径只能在D盘下,更改安装路径后,但不能正常使用,估计是连接问题,来看看吧!
- 请问怎样同时播放背景音乐和声音
- 请教主从表结构的定义。(没有几分了,呜呜。。。。)
- 用Delphi编的程序是不是只要一个EXE文件,在其他没装Delphi的机器上就可以运行了?
- 如何获取文件的建立时间,最后修改时间。
- 知道findcomponent的用法的请进
- 如何判断有多少个组件与DataSource相联?
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TFormTime = class(TForm)
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit1Exit(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
IsTime1, IsTime2 : string ;
public
{ Public declarations }
end;var
FormTime: TFormTime;implementation
uses UniBank;
{$R *.dfm}procedure TFormTime.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9','-',#8]) then
begin
Key:=#0;
exit ;
end ;
if ((Tedit(Sender).SelStart in [4,7]) or (Tedit(Sender).SelStart >9))
and (Key in ['0'..'9']) then
begin
key := #0;
exit ;
end ;
if (not ( Tedit(Sender).SelStart in [4,7])) and (key ='-') then
begin
Key :=#0 ;
exit ;
end ;
if (Tedit(Sender).SelStart in [4,7]) and (key='-') and
(Copy(Tedit(Sender).Text,Tedit(Sender).SelStart,1) ='-') then
begin
Key :=#0 ;
exit ;
end ;
if (Key =#8) and
(Copy(Tedit(Sender).Text,Tedit(Sender).SelStart,1) ='-') and
(Copy(Tedit(Sender).Text,Tedit(Sender).SelStart+1,1) <>'')
then
Key :=#0 ;
end;procedure TFormTime.Edit1Exit(Sender: TObject);
var ds :TDateTime ;
begin
try
ds:=StrToDate(TEdit(Sender).Text);
TEdit(Sender).Text :=FormatDateTime('yyyy-mm-dd',ds);
if TEdit(Sender).Name = 'Edit1' then
IsTime1:='Edit1'
else
IsTime1:='Edit2';
except
TEdit(Sender).Text :=FormatDateTime('yyyy-mm-dd',date);
if TEdit(Sender).Name = 'Edit1' then
IsTime1:=''
else
IsTime1:='';
Application.MessageBox('日期格式输入不正确,正确日期格式为2004-01-01','提示',0) ;
TEdit(Sender).SetFocus ;
end ;end;procedure TFormTime.FormShow(Sender: TObject);
begin
IsTime1:='';
IsTime2:='' ;
end;procedure TFormTime.Button1Click(Sender: TObject);
begin
if (Trim(Edit1.Text)<>'') and (Trim(Edit2.Text)<>'') then
begin
Edit1Exit(Edit1);
Edit1Exit(Edit2);
if (Trim(IsTime1)<>'') and (Trim(IsTime1)<>'') then
begin
StaDate := Edit1.Text ;
EndDate := Edit2.Text ;
Close ;
end ;
end
else
begin
Application.MessageBox('请输入开始时间及结束时间','提示',0);
end ;
end;procedure TFormTime.Button2Click(Sender: TObject);
begin
Close ;
end;procedure TFormTime.FormCreate(Sender: TObject);
begin
Edit2.Text := FormatDateTime('yyyy-mm-dd',Date);
Edit1.Text := FormatDateTime('yyyy-mm-dd',incmonth(Date,-1));
end;end.