在WIN98中如何通过程序,使 WIN98显示的时间格式由默认的'yy-m-d'为 'yyyy-mm-dd'.(300分)

  • 主题发起人 主题发起人 porsche
  • 开始时间 开始时间
P

porsche

Unregistered / Unconfirmed
GUEST, unregistred user!
1.在WIN98中如何通过程序,使 WIN98显示的时间格式由默认的'yy-m-d'为 'yyyy-mm-dd'.
参见:控制面板->区域设置->日期->短日期->短日期样式
2.如何通过程序 “圆整屏幕字体边角”
参见:控制面板->显示->效果->圆整屏幕字体边角”

注:不要重新启动

在线等侯,可行,马上给分。
 
强制修改控制面板中的日期格式

下面是我从别人那儿学来的
可以在控制面板中手工修改区域设置, 日期改为 yyyy-mm-dd 类型即可
程序中修改:

//强制写日期格式
try
htwWriteRegisry('sShortDate','yyyy-MM-dd' ,HKEY_CURRENT_USER, '/Control Panel/International');
htwWriteRegisry('sShortDate','yyyy-MM-dd' ,HKEY_USERS, '/.DEFAULT/Control Panel/International');
setlocaleinfo(LOCALE_SYSTEM_DEFAULT,LOCALE_SDATE,'yyyy-MM-dd');
except
end;
DateSeparator := '-';
shortdateformat:='yyyy-mm-dd';
ShortTimeFormat:='hh:mm:ss';
s:=application.UpdateFormatSettings;


function htwReadRegisry( RegKey :string ; Default :string ; MyRootKey : Hkey; MyOpenKey :string): string ;
var
Registry: TRegistry;
S : string;
begin
Registry:= TRegistry.Create;
try
begin
Registry.RootKey :=MyRootKey; // HKEY_CURRENT_USER;
Registry.OpenKey(MYOpenKey,false); // Registry.OpenKey('/Software/MachineAdministrator',false);
S := Registry.ReadString(RegKey);
end
finally
begin
Registry.CloseKey;
Registry.Free;
end;
if Trim(S)='' then Result := Default
else Result := S;
end;

end;

procedure htwWriteRegisry(RegKey :string ;asValueTobewrited : string; MyRootKey : Hkey; MyOpenKey :string );
var
Registry: TRegistry;
begin
Registry:= TRegistry.Create;
try
begin
Registry.RootKey :=MyRootKey; // HKEY_CURRENT_USER;
Registry.OpenKey(MyOpenKey,true); //Registry.OpenKey('/Software/MachineAdministrator',true);
Registry.WriteString(RegKey,asValueTobewrited);
end
finally
begin
Registry.CloseKey;
Registry.Free;
end;
end;
end;

 
使用lmd中的时间控件,使用极其简单,但功能极为强大
 
同意使用yanghai0437的方法
 
with TRegistry.Create do
begin
RootKey := HKEY_USERS;
OpenKey( '.DEFAULT/Control Panel/International',True);
WriteStringData('sShortDate','yyyy-MM-dd');
CloseKey;
Free;
end;
 
以上几位,运行后注册表是改动了,
可时间格式还是 短日期的啊
 
formatdateTime
 
procedure TForm1.Button1Click(Sender: TObject);
var
DefLCID: LCID;
Buffer: array[0..255] of char;
begin
Application.UpdateFormatSettings := True;
StrPCopy(Buffer,'yyyy-MM-dd');
DefLCID := GetThreadLocale;
if SetLocaleInfo(DefLCID,LOCALE_SSHORTDATE,Buffer) then begin
ShortDateFormat := Buffer;
end;
Application.UpdateFormatSettings := False;
end;
 
多谢gonghh, 第一个问题解决了,麻烦看看第二个问题

2.如何通过程序 “圆整屏幕字体边角”
参见:控制面板->显示->效果->圆整屏幕字体边角”

 
后退
顶部