2015-04-05 36 views
-1

我想在我的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的是在「使用」的條款我得到了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; 

幾乎在那裏!運行時和設計時包都會編譯,但是當我嘗試安裝designtime包時,出現「01/01/1970」不是有效日期的錯誤。這是而不是上述代碼中的錯誤,因爲當我更改代碼中的日期時,它仍然與「01/01/1970」相同。

原來只有1個其他文件包含「01/01/1970」作爲文本,但是這是一個.ocx文件,所以我不知道該如何甚至是否應該對此進行修補。

+0

您必須提供FormatSettings定義。並使用FormatSettings重載的日期/時間函數。請參閱[ShortDateFormat vs FormatSettings.ShortDateFormat?](http://stackoverflow.com/q/23707323/576719)。 – 2015-04-05 10:09:47

+0

這些版本號(100和140)會暗示它們適用於Delphi 3和6.如果是這樣的話,那麼這些版本號會顯示爲老版本;-) – 2015-04-05 11:25:56

+0

@Downvoter - 當您投票時,請添加評論爲什麼您這樣做,以便我可以改進我的問題。沒有評論,你的downvote對我來說並不意味着什麼。 – stevenvh 2015-04-07 14:55:01

回答

1

使用FormatSettings.ShortDateFormat,FormatSettings.DateSeparator ...代替引入自己的變量。這將是最接近原始的。

一個更簡潔的方法是使用帶有formatsettings重載的日期/時間函數,而不是臨時更改全局格式設置。

+0

感謝您的回覆。我並不是故意把我不那麼幹淨的補丁變成永久性的,我只是想看看它們是否是唯一有問題的線路。 – stevenvh 2015-04-05 10:34:13

+0

如果使用'FormatSettings.ShortDateFormat',則代碼應該可以工作。 – 2015-04-05 12:42:22

1

Acording到這個博客帖子:

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

異步業餘體校目前由羅馬Kassebaum維持不變,但僅適用於公司的RAD Studio(包括Delphi和的CBuilder)的最新版本。

的menioned博客鏈接到下一個源鍛造頁: http://sourceforge.net/projects/turbopowerasyncprofessionalnew/?source=navbar

Infromation網頁上顯示,該項目被關閉,並且把它移到GitHub上,但沒有提供鏈接。

在GitHub上做一些搜索後,我發現項目頁面

https://github.com/TurboPack/AsyncPro

無論如何,因爲羅馬Kassebaum被維修器材項目是與德爾福最新版本,它可能不適合你的工作相兼容。

因此,我強烈建議您與Roman Kassebaum取得聯繫,因爲他最好知道應該在Delphi XE3安裝時使用哪個版本,或者需要修復哪些版本以使其兼容。

0

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

我也爲XE3創建了一個分支。你可以在TurboPack XE3找到它。

+0

是否有任何版本的文件被發現?我也無法從TurboPack找到TurboPack XE3的鏈接。 – 2015-04-06 09:13:33

+0

TurboPack XE3是一個組織:https://github.com/TurboPack-XE3/ – 2015-04-07 09:37:03

相關問題