标题:求助一下:设置系统时间的函数到底是什么
只看楼主
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1501
专家分:6573
注 册:2010-7-5
结帖率:91.53%
已结贴  问题点数:10 回复次数:10 
求助一下:设置系统时间的函数到底是什么
最近照着《百例课堂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环境
搜索更多相关主题的帖子: 编程入门 课堂 
2015-02-24 06:07
抛砖引玉
Rank: 1
等 级:新手上路
帖 子:6
专家分:1
注 册:2015-2-24
得分:0 
setsystemtime和setlocaltime
测试环境一:Win7 64位 delphiXE5 两个函数都可以改变系统时间
测试环境二:Win7 64位 Delphi7    两个函数都可以改变系统时间  把编译的程序复制到虚拟机的XP里
测试环境三:WinXP  setsystemtime可以改变系统时间  setlocaltime没试 应该也可以吧

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



说了,不如不说的,那就不说;说了,等于没说的,还是不说。横批:爱说不说!
2015-02-24 07:00
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1501
专家分:6573
注 册:2010-7-5
得分:0 
。。。时间确实被改了。。。

追问:那点击按钮怎么才能蹦出时间设置框呢?

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-02-24 07:03
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1501
专家分:6573
注 册:2010-7-5
得分:0 
电子书上明明是说:在弹出的日期和时间对话框中可以看出系统时间被重新设置

[ 本帖最后由 不懂才问 于 2015-2-24 07:19 编辑 ]

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-02-24 07:16
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1501
专家分:6573
注 册:2010-7-5
得分:0 

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-02-24 07:19
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1501
专家分:6573
注 册:2010-7-5
得分:0 

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-02-24 07:19
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:10 
在弹出的日期和时间对话框中可以看出系统时间被重新设置。。。。。这句话的意思是你自己双击屏幕右下角,自己去看

DO IT YOURSELF !
2015-02-26 09:19
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
这个代码是可以更改时间和日期的

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;

DO IT YOURSELF !
2015-02-26 09:20
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
如果你真的想在程序中调用系统自带的那个时钟模块   试试以下代码:


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 编辑 ]

DO IT YOURSELF !
2015-02-26 09:26
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
以下是引用不懂才问在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 它是阅读操作不是更改操作

DO IT YOURSELF !
2015-02-26 09:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-442164-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.156444 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved