当前位置:编程学习 > Delphi >>

delphi 一个程序问题

procedure TForm1.FormCreate(Sender: TObject);
begin
if datetimetostr(now)>'2011-1-31 13:11:00'then
form1.Close;
end; 结果是form1窗口并没有关闭,如何能够按照获取的时间值来关闭窗口?
请高手指教。
答案:

楼主的程序不能关闭的原因是字符串比较错误

因为DateTimeToStr返回的字符串是带有特殊字符的, 比如今天的日期就是2011/1/31 13:11:00

所以不能比较, 可以提取日期和时间单独比较, 写了一个给楼主

程序如下:

procedure TForm1.Button1Click(Sender: TObject);
const
  dTargetDate: DWORD = 20110131;//日期
  dTargetTime: DWORD = 131100; //时间
var
  dYear, dMonth, dDay, dHour, dMinite, dSecond, dMSecond: WORD;
  dCurrent: DWORD;
begin
  DecodeDate(Now, dYear, dMonth, dDay);
  DecodeTime(Now, dHour, dMinite, dSecond, dMSecond);
  dCurrent := dYear * 10000 + dMonth * 100 + dDay;
  if dCurrent > dTargetDate then
    Form1.Close
  else if dCurrent = dTargetDate then
  begin
    dCurrent := dHour * 10000 + dMinite * 100 + dSecond;
    if dCurrent > dTargetTime then
      Form1.Close;
  end;
end;

上一个:Delphi 7怎么编译
下一个:跪求delphi语句解释

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,