unit Hull;
interface
uses
Windows, Messages, Sysutils, Classes, Graphics, Controls, Math, Stdctrls, Motion;
type
THull = Class(Tobject)
Public
sh_HullXForce,sh_HullYForce,sh_HullNMoment : Double;
//
sh_Xuu,sh_Xvr : Double;
sh_Yv,sh_Yur,Sh_Yvv,sh_Yvr,sh_Yurr : Double;
sh_Nv,sh_Nuv,sh_Nr,sh_Nvvr,sh_Nuvrr,sh_Nrr : Double;
//
Constructor Create;
Destructor Destroy; override;
//
function HullXForce(Motion : TMotion);Double;
function HullYForce(Motion : TMotion);Double;
function HullNMoment(Motion : TMotion);Double;
end;
implementation
{THull}
...
---------------------------------------------------------------------------------
unit MotionSolver;
interface
uses
Windows, Messages, Sysutils, Classes, Graphics, Controls, Math, Stdctrls;
type
TMotionSolver = Class(TObject)
Public
FK : Array[1..8] of Double;
R : Array[1..8] of Double;
Q : Array[1..8] of Double;
Dt : Double;
//
Constructor Create;
Destructor Destroy; override;
//
Procedure SpeedAndDrift(Hull : THull);
function Cal(Hull : THull);Double;
end;
const Rho = 104.61;
uses Hull;
implementation
{TMotionSolver}
...
---------------------------------------------------------------------------------
위와 같은 경우 어떤 Unit의 Class를 다른 Unit의 Class의 Procedure나 function에서 쓸 경우 이렇게 쓰면 에러를 가지는 Type이라고 뜨는데..방법이 없습니까?
저는 어떤 Unit의 Class를 다른 Unit의 Procedure나 function에서 사용하고 싶은데요..
소스를 보시고 답변 좀 부탁드립니다. 그럼 수고하세요
uses Hull;
의 위치가 이상하네요..
그거 컴파일 되는거 맞나요..
uses절은 interface 밑 아니면
implementation 밑 으로 알고 있는데 이상한 위치에 있네요
그거 컴파일 되는지 모르겠네요..
만약 uses HULL; 절이 implementation 에 있으면 그와같은 에러가
날것이고 interface밑에 있다면 추측컨데 에러 없을거에요.
정말 요상타 implementation위에 있다니.
나도 한번 테스트해볼까 컴파일되나..
우나기 wrote:
> unit Hull;
>
> interface
>
> uses
> Windows, Messages, Sysutils, Classes, Graphics, Controls, Math, Stdctrls, Motion;
>
> type
> THull = Class(Tobject)
> Public
> sh_HullXForce,sh_HullYForce,sh_HullNMoment : Double;
> //
> sh_Xuu,sh_Xvr : Double;
> sh_Yv,sh_Yur,Sh_Yvv,sh_Yvr,sh_Yurr : Double;
> sh_Nv,sh_Nuv,sh_Nr,sh_Nvvr,sh_Nuvrr,sh_Nrr : Double;
> //
> Constructor Create;
> Destructor Destroy; override;
> //
> function HullXForce(Motion : TMotion);Double;
> function HullYForce(Motion : TMotion);Double;
> function HullNMoment(Motion : TMotion);Double;
> end;
>
> implementation
> {THull}
> ...
> ---------------------------------------------------------------------------------
> unit MotionSolver;
>
> interface
>
> uses
> Windows, Messages, Sysutils, Classes, Graphics, Controls, Math, Stdctrls;
>
> type
> TMotionSolver = Class(TObject)
> Public
> FK : Array[1..8] of Double;
> R : Array[1..8] of Double;
> Q : Array[1..8] of Double;
> Dt : Double;
> //
> Constructor Create;
> Destructor Destroy; override;
> //
> Procedure SpeedAndDrift(Hull : THull);
> function Cal(Hull : THull);Double;
> end;
>
> const Rho = 104.61;
>
> uses Hull;
>
> implementation
> {TMotionSolver}
> ...
> ---------------------------------------------------------------------------------
> 위와 같은 경우 어떤 Unit의 Class를 다른 Unit의 Class의 Procedure나 function에서 쓸 경우 이렇게 쓰면 에러를 가지는 Type이라고 뜨는데..방법이 없습니까?
> 저는 어떤 Unit의 Class를 다른 Unit의 Procedure나 function에서 사용하고 싶은데요..
> 소스를 보시고 답변 좀 부탁드립니다. 그럼 수고하세요