Q&A

  • Procedure와 function의 질문..
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에서 사용하고 싶은데요..

소스를 보시고 답변 좀 부탁드립니다. 그럼 수고하세요

1  COMMENTS
  • Profile
    쩌비 2001.12.29 06:14
    두번째 유닛 unit MotionSolver 에서



    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에서 사용하고 싶은데요..

    > 소스를 보시고 답변 좀 부탁드립니다. 그럼 수고하세요