关于安装第三方控件SuperObject的问题!

钞票搬运工 2018-09-10 01:36:25

(工具:delphi2010,windows7 旗舰版,控件文件是在网上下载的四个单元文件:superdate.pas, superobject.pas,supertimezone.pas,
superxmlparser.pas)

我想安装SuperObject这个类,但是在编译单元文件supertimezone.pas时报错"[DCC Error] supertimezone.pas(95): E2003 Undeclared identifier: 'PDynamicTimeZoneInformation'"如下图所示。请问各位指点一二?谢谢

...全文
950 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaoxibin922 2019-10-29
  • 打赏
  • 举报
回复
修改supertimezone.pas文件增加如下代码,重新编译 (* EXtended version - DST Aware *) //新增开始 {$IF RTLVersion <= 21.00} // Delphi 2010 does not have these definitions. type PDynamicTimeZoneInformation = ^TDynamicTimeZoneInformation; _TIME_DYNAMIC_ZONE_INFORMATION = record Bias: Longint; StandardName: array[0..31] of WCHAR; StandardDate: TSystemTime; StandardBias: Longint; DaylightName: array[0..31] of WCHAR; DaylightDate: TSystemTime; DaylightBias: Longint; TimeZoneKeyName: array[0..127] of WCHAR; DynamicDaylightTimeDisabled: Boolean; end; {$EXTERNALSYM _TIME_DYNAMIC_ZONE_INFORMATION} TDynamicTimeZoneInformation = _TIME_DYNAMIC_ZONE_INFORMATION; TIME_DYNAMIC_ZONE_INFORMATION = _TIME_DYNAMIC_ZONE_INFORMATION; {$EXTERNALSYM _TIME_DYNAMIC_ZONE_INFORMATION} function GetDynamicTimeZoneInformation(var pTimeZoneInformation: TDynamicTimeZoneInformation): DWORD; stdcall; external kernel32 name 'GetDynamicTimeZoneInformation' delayed; {$IFEND} //新增结束 { Windows 7+ }
BlueStorm 2018-09-12
  • 打赏
  • 举报
回复
估计没有适合于delphi2010的版本,其实你把Delphi XE的Windows.pas的相关部分拷贝/粘贴到你的程序,最多也就几分钟而已。
  • 打赏
  • 举报
回复
D2010是2009-08-15发布的,win7是2009-07-22发布的,D2010的windows单元没来得及更新到win7 sdk的版本,你更新到XE或者把XE中的WinApi.Windows.pas复制到2010中应该可以用,如果坚持用2010,可以增加如下定义:
PDynamicTimeZoneInformation = ^TDynamicTimeZoneInformation;
_TIME_DYNAMIC_ZONE_INFORMATION = record
Bias: Longint;
StandardName: array[0..31] of WCHAR;
StandardDate: TSystemTime;
StandardBias: Longint;
DaylightName: array[0..31] of WCHAR;
DaylightDate: TSystemTime;
DaylightBias: Longint;
TimeZoneKeyName: array[0..127] of WCHAR;
DynamicDaylightTimeDisabled: Boolean;
end;
无聊的猪 2018-09-11
  • 打赏
  • 举报
回复
找个支持D7的版本应该就能用
钞票搬运工 2018-09-11
  • 打赏
  • 举报
回复
楼上各位大神说得完全正确。版本太低,无法使用。
如按7楼的方法添加代码,可以解决”PDynamicTimeZoneInformation“不能识别的问题,但是又会有新的问题出现。
比如"[DCC Error] supertimezone.pas(153): E2003 Undeclared identifier: 'GetDynamicTimeZoneInformation";
综上所述还是希望能得到适合于delphi2010的SuperObject资源文件!不胜感激!我的邮箱:yhyhai200904@163.com。
  • 打赏
  • 举报
回复
TDynamicTimeZoneInformation = _TIME_DYNAMIC_ZONE_INFORMATION;
钞票搬运工 2018-09-10
  • 打赏
  • 举报
回复
引用 4 楼 lyhoo163 的回复:
或是“动态夏令时信息”
能否发个适合delphi2010的SuperObject资源文件给我!不胜感激!我的邮箱:yhyhai200904@163.com
lyhoo163 2018-09-10
  • 打赏
  • 举报
回复
或是“动态夏令时信息”
lyhoo163 2018-09-10
  • 打赏
  • 举报
回复
从字面上看,“太平洋时区信息”,应该是操作系统的类。
lyhoo163 2018-09-10
  • 打赏
  • 举报
回复
代码中出现PDynamicTimeZoneInformation,不能识别。
1、如果该类是自我声明,该类需要引用另一个声明的单元文件。
2、如果它是Delphi内部声明的类,需要更高版本的D,才能识别它。
  • 打赏
  • 举报
回复
D2010可能版本有点低,WinApi.Windows单元没有更新到win7 sdk的版本。

5,388

社区成员

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

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