在我的應用我有一個從類型的TThread的基礎線程對象(FrameObject)繼承兩個紗線對象(外部和腰帶)。這在D7中可以正常工作。應用程序需要擴展,我藉此機會將其移至D2010 - 但是,當我嘗試編譯Delphi時,抱怨FrameObject Create方法聲明與前一個聲明不同。繼承的問題,似乎並沒有工作在相同的D2010 D7
類類型和構造如下所示;
TFrameObject = class(TThread)
constructor TFrameObject.Create(BuildType: TBuildType; OnBatchStep: TBatchNotify; OnThreadComplete: TNotifyTermination);
begin
inherited Create(True);
...
end;
TOuter = class (TFrameObject)
constructor Create(BuildType: TBuildType; OnBatchStep: TBatchNotify; OnThreadComplete: TNotifyTermination; ExceptionHandler: TExceptionHandler);
begin
inherited create(BuildType, OnBatchStep, OnThreadComplete);
fExceptionHandler := ExceptionHandler;
...
end;
TSash = class (TFrameObject)
constructor Create(BuildType: TBuildType; OnBatchStep: TBatchNotify; OnThreadComplete: TNotifyTermination; ExceptionHandler: TExceptionHandler);
begin
inherited create(BuildType, OnBatchStep, OnThreadComplete);
fExceptionHandler := ExceptionHandler;
...
end;
的D2010代碼是D7源文件,並按照我說的直接複製,這一切都在D7(也許它不應該!)工作正常 - 所以我要去哪裏錯了?
還要檢查庫路徑順序是兩個版本都一樣 - 這可能會幫助你找到違規單位。一個蠻力檢查問題是重命名您的演示應用程序中的類。如果「TFrameObjectTest」仍然存在問題,那麼您知道這一切都發生在您正在查看的單元中。 – 2011-01-31 02:08:28