我想在我的Delphi XE3中使用Async Pro。我在SourceForge上找到了A407版本,這似乎是最新的版本。當我嘗試安裝運行時程序包A407_R100.bpl時,出現數據長度超過2GB的錯誤。當我解決這個問題時(有一些猜測)我得到4個其他錯誤。我也可以嘗試修復這些問題,但恐怕我不得不修補很多代碼,以至於無法工作。是否有與Delphi XE3一起使用的Async Pro版本?
是否有版本的Async Pro它與XE3一起使用?或者至少清楚和經過驗證的說明如何修補代碼?
更新
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的是在「使用」的條款我得到了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」不是有效日期的錯誤。這是而不是上述代碼中的錯誤,因爲當我更改代碼中的日期時,它仍然與「01/01/1970」相同。
原來只有1個其他文件包含「01/01/1970」作爲文本,但是這是一個.ocx
文件,所以我不知道該如何甚至是否應該對此進行修補。
您必須提供FormatSettings定義。並使用FormatSettings重載的日期/時間函數。請參閱[ShortDateFormat vs FormatSettings.ShortDateFormat?](http://stackoverflow.com/q/23707323/576719)。 – 2015-04-05 10:09:47
這些版本號(100和140)會暗示它們適用於Delphi 3和6.如果是這樣的話,那麼這些版本號會顯示爲老版本;-) – 2015-04-05 11:25:56
@Downvoter - 當您投票時,請添加評論爲什麼您這樣做,以便我可以改進我的問題。沒有評論,你的downvote對我來說並不意味着什麼。 – stevenvh 2015-04-07 14:55:01