注册 登录
编程论坛 Delphi论坛

求助一下:设置系统时间的函数到底是什么

不懂才问 发布于 2015-02-24 06:07, 4535 次点击
最近照着《百例课堂delphi7编程入门篇》做实例

前面的一些例子,都得到正确的结果了

但做到设置系统时间这个例子的时候,点了按钮没结果

例子实现步骤大概是这样的:
窗体上放一按钮,双击输入代码,如下:
程序代码:

procedure TForm1.Button1Click(Sender: TObject);
var
yourtime:Tsystemtime;
begin
  with yourtime do
  begin
    wyear:=1999;
    wmonth:=12;
    wday:=1;
    whour:=0;
    wminute:=0;
    wsecond:=0;
  end;
getsystemtime(yourtime);
end;

end.

我反复对照了几遍,代码应该没错,但运行程序点按钮就是没反应

照着输入了其他几个函数SYSTEMTIME,和setsystemtimeadjustment,都报错
换了getsystemtime,还是没反应

百度了一下,换了SetLocalTime,也没反应。

哪位懂,给个解释吧,谢谢!
补充:win7 64位   delphi xe5环境
10 回复
#2
抛砖引玉2015-02-24 07:00
setsystemtime和setlocaltime
测试环境一:Win7 64位 delphiXE5 两个函数都可以改变系统时间
测试环境二:Win7 64位 Delphi7    两个函数都可以改变系统时间  把编译的程序复制到虚拟机的XP里
测试环境三:WinXP  setsystemtime可以改变系统时间  setlocaltime没试 应该也可以吧

总结,系统时间真的被改变了


#3
不懂才问2015-02-24 07:03
。。。时间确实被改了。。。

追问:那点击按钮怎么才能蹦出时间设置框呢?
#4
不懂才问2015-02-24 07:16
电子书上明明是说:在弹出的日期和时间对话框中可以看出系统时间被重新设置

[ 本帖最后由 不懂才问 于 2015-2-24 07:19 编辑 ]
#5
不懂才问2015-02-24 07:19
只有本站会员才能查看附件,请 登录
#6
不懂才问2015-02-24 07:19
只有本站会员才能查看附件,请 登录
#7
wp2319572015-02-26 09:19
在弹出的日期和时间对话框中可以看出系统时间被重新设置。。。。。这句话的意思是你自己双击屏幕右下角,自己去看
#8
wp2319572015-02-26 09:20
这个代码是可以更改时间和日期的

procedure TForm1.Button1Click(Sender: TObject);
var
yourtime:Tsystemtime;
begin
  with yourtime do
  begin
    wyear:=1999;
    wmonth:=12;
    wday:=1;
    whour:=0;
    wminute:=0;
    wsecond:=0;
  end;
setsystemtime(yourtime);
end;
#9
wp2319572015-02-26 09:26
如果你真的想在程序中调用系统自带的那个时钟模块   试试以下代码:


procedure TForm1.Button1Click(Sender: TObject);
var
yourtime:Tsystemtime;
begin
  with yourtime do
  begin
    wyear:=1999;
    wmonth:=12;
    wday:=1;
    whour:=0;
    wminute:=0;
    wsecond:=0;
  end;
setsystemtime(yourtime);
winexec('rundll32.exe /d shell32.dll,Control_RunDLL timedate.cpl',SW_SHOWDEFAULT);
end;

[ 本帖最后由 wp231957 于 2015-2-26 09:28 编辑 ]
#10
wp2319572015-02-26 09:35
以下是引用不懂才问在2015-2-24 06:07:42的发言:

procedure TForm1.Button1Click(Sender: TObject);
var
yourtime:Tsystemtime;
begin
  with yourtime do
  begin
    wyear:=1999;
    wmonth:=12;
    wday:=1;
    whour:=0;
    wminute:=0;
    wsecond:=0;
  end;
getsystemtime(yourtime);
end;

end.

我反复对照了几遍,代码应该没错,但运行程序点按钮就是没反应


你的失败代码 乃是马大哈所导致
就算你不懂英文,那最简单的setXXXX 是设置XXXX 是更改的操作  而getXXXX 是获取XXXX 它是阅读操作不是更改操作
#11
不懂才问2015-02-27 00:29
终于有答案了。。。学习中,,,
1