是否有适用于 Delphi XE3 的 Async Pro 版本?

Is there a version of Async Pro which works with Delphi XE3?

我想在我的 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" 子句中,但我得到了 ShortDateFormatDateSeparator 未定义的错误。所以我对它们进行了硬编码:

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;

快到了!运行时和设计时包都可以编译,但是当我尝试安装设计时包时,出现“01/01/1970”不是有效日期的错误。这不是上面代码中的错误,因为当我在代码中更改日期时它仍然是“01/01/1970”。

原来只有 1 个其他文件包含“01/01/1970”作为文本,但这是一个 .ocx 文件,所以我不确定如何或是否应该修补它.

根据这篇博文 post:

http://blog.kassebaum.eu/?p=379

Async Proffesional 当前由 Roman Kassebaum 维护,但仅适用于最新版本的 RAD studio(Delphi 和 CBuilder)。

提到的博客 links 到下一个源伪造页面: http://sourceforge.net/projects/turbopowerasyncprofessionalnew/?source=navbar

页面上的信息表明该项目已关闭并移至 github,但未提供 link。

在 GitHub 上搜索后,我找到了项目页面

https://github.com/TurboPack/AsyncPro

无论如何,由于 Roman Kassebaum 正在维护该项目以与最新的 Delphi 版本兼容,因此它可能不适合您。

所以我强烈建议您与 Roman Kassebaum 取得联系,因为他最了解您应该使用哪个版本来安装 Delphi XE3,或者需要修复什么才能使其兼容。

使用FormatSettings.ShortDateFormatFormatSettings.DateSeparator、...而不是引入自己的变量。那将是最接近原始的。

更简洁的方法是使用带有格式设置重载的 date/time 函数,而不是临时更改全局格式设置。

官方 AsyncPro 版本移至 GitHub。您可以在 TurboPack 下找到它。它支持最新的 Delphi 和 C++Builder 版本。

我还为 XE3 创建了一个分支。您可以在 TurboPack XE3.

下找到它