我想在Delphi XE3中使用 Async Pro 。我在SourceForge上找到了一个版本A407,这似乎是最新版本。当我尝试安装运行时包A407_R100.bpl时,出现数据长度超过2GB的错误。当我解决这个问题时(有些猜测)我得到了4个其他错误。我也可以尝试解决这些问题,但是我担心我将不得不修补这么多代码,它将不再起作用。
是否有适用于XE3的 Async Pro 版本?或者至少是如何修补代码的明确且经过验证的说明?
更新
Here我找到了一个 AsyncPro 库,它似乎更新了;至少包名为A407_ * 140.bpl而不是A407_ * 100.bpl。我在 AwAbsPd.pas 的代码中仍有一些错误:
procedure InitializeUnit;
var
TmpDateSeparator : char;
TmpDateFormat : string[15];
TmpDateTime : TDateTime;
begin
{Set Unix days base}
TmpDateFormat := ShortDateFormat;
TmpDateSeparator := DateSeparator;
DateSeparator := '/';
ShortDateFormat := 'mm/dd/yyyy';
TmpDateTime := StrToDateTime('01/01/1970');
UnixDaysBase := Trunc(TmpDateTime);
DateSeparator := TmpDateSeparator;
ShortDateFormat := TmpDateFormat;
虽然 SysUtils 位于“uses”子句中,但我收到的错误是ShortDateFormat
和DateSeparator
未定义。所以我对它们进行了硬编码:
procedure InitializeUnit;
var
TmpDateSeparator : char;
TmpDateFormat : string[15];
TmpDateTime : TDateTime;
// added stevenvh
var
DateSeparator: char;
ShortDateFormat: String;
ShortTimeFormat: String;
// end addition
begin
// added stevenvh
DateSeparator := '-';
ShortDateFormat := 'yyyy-mm-dd';
ShortTimeFormat := 'HH:mm:ss';
// end addition
{Set Unix days base}
TmpDateFormat := ShortDateFormat;
TmpDateSeparator := DateSeparator;
DateSeparator := '/';
ShortDateFormat := 'mm/dd/yyyy';
TmpDateTime := StrToDateTime('01/01/1970');
UnixDaysBase := Trunc(TmpDateTime);
DateSeparator := TmpDateSeparator;
ShortDateFormat := TmpDateFormat;
几乎就在那里!运行时和设计时包都编译,但是当我尝试安装designtime包时,出现“01/01/1970”不是有效日期的错误。这是上面代码中的 not 错误,因为当我更改代码中的日期时它仍然是“01/01/1970”。
原来只有一个其他文件包含“01/01/1970”作为文本,但这是一个.ocx
文件,所以我不确定如何修改它。 / p>
答案 0 :(得分:1)
根据这篇博文:
http://blog.kassebaum.eu/?p=379
Async Proffesional目前由Roman Kassebaum维护,但仅适用于最新版本的RAD studio(包括Delphi和CBuilder)。
受管理的博客链接到下一个来源伪造页面: http://sourceforge.net/projects/turbopowerasyncprofessionalnew/?source=navbar
页面上的信息表明该项目已关闭,并且已移至github,但未提供任何链接。
在对GitHub进行一些搜索之后,我找到了项目页面
https://github.com/TurboPack/AsyncPro
无论如何,由于Roman Kassebaum正在维护该项目以与最新的Delphi版本兼容,因此可能对您无效。
所以我强烈建议您与Roman Kassebaum联系,因为他最了解您应该在Delphi XE3安装中使用哪个版本,或者需要修复哪些版本才能使其兼容。
答案 1 :(得分:1)
使用FormatSettings.ShortDateFormat
,FormatSettings.DateSeparator
,...而不是引入自己的变量。那将是最接近原始的。
更简洁的方法是使用日期/时间函数和格式设置重载,而不是暂时更改全局格式设置。
答案 2 :(得分:0)
官方AsyncPro版本转移到GitHub。您可以在TurboPack下找到它。它支持最新的Delphi和C ++ Builder版本。
我还为XE3创建了一个分支。您可以在TurboPack XE3下找到它。