关于DBGrid滚动条的问题,以及FormatDateTime

coriocarcsdn 2017-06-19 11:37:20
页面中有一个DBGrid控件。。
在进行筛选操作时候记录很少的,滚动条消失。 滚动条的位置成为一个白条状。
在进行其他操作,记录数恢复很多, 滚动条并不恢复,依然是个白条,
后来使用 ShowScrollBar(DBGrid1->Handle,SB_VERT,true); 虽然能解决问题, 但是需要把Button按两下, 按一下显示滚动条
再按一下,又变成白色条。 在按一下又恢复显示滚动条。
各位大神,这到底是怎么回事啊


对了,还有个问题,我的时间格式是 yyyy-mm-dd, 可有的机子是yyyy\mm\dd, 我用FormatDateTime("yyyy-mm-dd", Now());
来进行修改, 请问这样会不会对win7系统造成影响, 造成我的程序或者其他程序无法正常运行的?
...全文
253 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jjpweb 2017-06-21
  • 打赏
  • 举报
回复
程序启动时用上面的代码设置统一格式。
jjpweb 2017-06-20
  • 打赏
  • 举报
回复
FormatDateTime是把时间格式化成你想要的字符串,不是设置系统的时间格式。 设置系统的时间格式用这个
SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_IDIGITS, '2');
    SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_ICURRDIGITS, '2');
    SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE, 'yyyy-MM-dd');
    SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SLONGDATE, 'yyyy-MM-dd');
    SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_STIMEFORMAT, 'HH:mm:ss');
    SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SDATE, '-');
    SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_STIME, ':');
    SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_S1159, '');
    SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_S2359, '');
    SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0, SMTO_ABORTIFHUNG, 10, p);
coriocarcsdn 2017-06-20
  • 打赏
  • 举报
回复
[quote=引用 2 楼 jjpweb 的回复:] FormatDateTime是把时间格式化成你想要的字符串,不是设置系统的时间格式。 设置系统的时间格式用这个
SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_IDIGITS, '2');
    SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_ICURRDIGITS, '2');
    SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE, 'yyyy-MM-dd');
    SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SLONGDATE, 'yyyy-MM-dd');
    SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_STIMEFORMAT, 'HH:mm:ss');
    SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SDATE, '-');
    SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_STIME, ':');
    SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_S1159, '');
    SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_S2359, '');
    SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0, SMTO_ABORTIFHUNG, 10, p);
[/quote 请问, 有的电脑是yyyy-mm-dd, 有的是yyyy/mm/dd, 为了都能让程序兼容,你们一般怎么解决这个问题呢
lyhoo163 2017-06-20
  • 打赏
  • 举报
回复
建议你一个问题一贴。 第一个问题 你试试删除DBgrid后,再加入DBGrid。这样使用默认的参数,应该能解决。 第二个问题 系统的长日期格式,通常yyyy/m/d,通过FormatDateTime("yyyy-mm-dd", Now());仅是获取自己格式的日期值,它对系统的日期的格式,无影响。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧