为什么会出现2次SHOWMESSAGE呢 ( 积分: 30 )

  • 主题发起人 主题发起人 terry_zhou82
  • 开始时间 开始时间
T

terry_zhou82

Unregistered / Unconfirmed
GUEST, unregistred user!
我的通过程序比较2个DATATIMEPICKER间的日期差距,如果小于4,就出现警告语句,但是为使么会连续出现2次SHOWMESSAGE,让我点击2次呢? 具体代码如下:

function TForm1.Day: byte

begin
result := DaysBetween(Datetimepicker1.Date, datetimepicker2.Date)

end


procedure TForm1.DateTimePicker2Change(Sender: TObject)

begin
if day<4 then
showmessage('此票业务没有超期费产生哦!请重新选择日期')

end

function TForm1.Day: byte;
begin
result := DaysBetween(Datetimepicker1.Date, datetimepicker2.Date);
end;

procedure TForm1.DateTimePicker2Change(Sender: TObject);
begin
if day<4 then
showmessage('此票业务没有超期费产生哦!请重新选择日期');
end;
 
procedure TForm1.DateTimePicker1CloseUp(Sender: TObject);
begin
if day<4 then
showmessage('此票业务没有超期费产生哦!请重新选择日期');
end;

procedure TForm1.DateTimePicker2CloseUp(Sender: TObject);
begin
if day<4 then
showmessage('此票业务没有超期费产生哦!请重新选择日期');
end;
因为在 DateTimePicker 关闭之前会出发2次 onChange 事件,所以会连续出现2次SHOWMESSAGE,改用 onCloseUp 即可。
 
可以了。但是楼上的,有没有办法在showmessage关闭后,DATETIMEPICKER自动在设为系统时间?我用Datetimepicker2.setfocus和refresh好像都没有用吗?
 
Datetimepicker2.DataTime= Now()
(具体属性记不清了 反正是DataTime)
 
没有,我是要恢复到原来刚开始选择是的默认日期。
 
if day<4 then
begin
showmessage('此票业务没有超期费产生哦!请重新选择日期');
Datetimepicker1.DataTime:=Date;
end;
 
有没有办法,让DATETIMEPICKEr控件在一打开程序界面是就显示当天的时间?而不是做程序时,添加此控件的时间?在ONCREATE里面打:
datetimepicker1.datetime:=date;?是这样吗?
 
是啊,为什么你不试试,不懂了再问呢?
 
我一直都在试啊,按照:
if day<4 then
begin
showmessage('此票业务没有超期费产生哦!请重新选择日期');
Datetimepicker1.DataTime:=Date;
end;
方法,datetimepicker1不管点击哪一天他的日期一直定格在now的这一天。而不是我所选的日期啊!
 
if day<4 then
begin
showmessage('此票业务没有超期费产生哦!请重新选择日期');
Datetimepicker1.DataTime:=[red]YourDate[/red];//你选的日期
end;
 
kaida,你上面输的内容:Datetimepicker1.DataTime:=[red]YourDate[/red];//你选的日期

也是要输在CLOSEUP事件里面?好像也没用吗?
 
敢问lz用delphi多长时间了?
 
算了。可能大家都没有明白我的意思,节分吧。
 
后退
顶部