更改系统日期格式(100分)

  • 主题发起人 主题发起人 sunqi
  • 开始时间 开始时间
S

sunqi

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用了pegasus 的方法更改时间格式但不起作用不知为什麽?
我的程序如下:
procedure TForm1.Button1Click(Sender: TObject);
var
aa :integer
bb :boolean
begin
SetLocaleInfo(
LOCALE_USER_DEFAULT,
LOCALE_STIME,
'hh:mm:ss' );
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0,0);
END ;
 
控制面板|区域设置上可以设置,同时BDE设置中在configure|system|上也
要更改成你想要的格式。
 
控制面板|区域设置上可以设置,同时BDE设置中在configure|system|上也
要更改成你想要的格式。
 
procedure fDbiSetDateFormat;

var
fDate : FMTDate;
begin
// Specifies date separator character
fDate.szDateSeparator := '/'; { }
// Date format. 0 = MDY, 1 = DMY, 2 = YMD
fDate.iDateMode := 0;
// If TRUE, write year as four digits
fDate.bFourDigitYear := False;
// On input add 1900 to year if True
fDate.bYearBiased := False;
// Month displayed with a leading zero if True
fDate.bMonthLeadingZero := False;
//. Day displayed with leading zero if True
fDate.bDayLeadingZero := False;

Check(DbiSetDateFormat(fDate));
end;

procedure fDbiSetTimeFormat;

var
fTime : FMTTime;
begin

fTime.cTimeSeparator :=':';
fTime.bTwelveHour:=false;
fTime.szAmString[6]:='AM';
fTime.szPmString[6]:='PM';
fTime.bSeconds:=true;
fTime.bMilSeconds:=false;

Check(DbiSetTimeFormat(fTime));
end;
 
PegaSus说的没错,只是没告诉你正确的地方。若在程序已建立各表单后运行他
所说的语句,则当前正在运行的程序是没法反应过来的,若你在表单的CreateParams
中调用PegaSus所说的办法,则当前程序能立即反应你的更改,尤其是对许多依
赖该事件的控件来说,尤为重要,我已试验过,没问题。若你要在表单创建以后才
使用办法,除非你是动态创建控件,或者建立该消息的接收过程。
 
; 在Delphi中同样有个时间窗定义变量TwoDigitYearCenturyWindow。比如将它设
为60,它的含义就是将今年的年份前溯60年作为时间窗起点,也就是变换时间窗为
1939-2038。
还有另外一个变量ShortDateFormat, 作为新开发的系统,最好设为'yyyy-MM-
dd', 这样系统就不依赖于windows系统设置的格式,而且统一为整齐的10位宽度,
这时既可输入4位数年份又可方便输入两位数年份, 让系统根据时间窗来自动转换。

对于新开发的系统,最好在程序开始处加入:
DateSeparator := '-';
ShortDateFormat:='yyyy-mm-dd';
TwoDigitYearCenturyWindow:=70;
如此简单的几句, 一定会为您换来无穷的效益!
 
yanghaijun说的没错,我也试过了,可以!
你在试一下,还不行我发原码给你!
在试一下吧!
 
DREAMSOFT 的方法我试通了 ,YANGHAIJUN 说的表单的CreateParams中调用
我不明白,我没找道CreateParams事件 . 还是请D4 发原码吧,我想大家都会
经常遇到这个问题 ,多谢
 
多人接受答案了。
 
关于更改日期格式

SetLocaleInfo(
LOCALE_USER_DEFAULT,
LOCALE_SDATE,
'yyyy/mm/dd' );
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0,0);

DREAMSOFT 的方法我试通了 ,YANGHAIJUN 说的表单的CreateParams中调用
我不明白,我没找道CreateParams事件 . 还是请D4 发原码吧,我想大家都会
经常遇到这个问题 ,多谢

mailto: taoqg@263.net
 

Similar threads

I
回复
0
查看
444
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
584
import
I
I
回复
0
查看
583
import
I
后退
顶部