Q&A

  • 원형참조에 관해
안녕하세요.

제가 VB만 하다가 막상 델파이를 하려니까 헤깔리는군요.

보통 VB에서는 공통함수를 Bas 확장자를 갖는 일명 모율에다

기술해놓고 서로 다른 폼에서 불러옵니다.



델파이 경우를 알아보니 폼이 없는 unit 을 추가해

그 안에다 공통함수를 기술해놓고 쓴다고 들었습니다.(맞는지?...)

그런데 단순히 UNIT만 추가하면 되는것이 아니라 USES 구문을

사용해 포함시켜야 한다고 하더군요,

예로



unit Unit1;



interface



uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls;

...

var

Form1: TForm1;



implementation

uses unit2;

=========================================================================

//unit2 는 공통함수들이 들어가는 UNIT입니다.

unit Unit2;



interface

uses unit1;



implementation



//공통함수 기술...

=========================================================================

이런식으로 구성하면 되더군요. 그런데 unit2 에 보면

interface 구문에 uses 로서 unit1 을 포함시켜 놨습니다.

제가 보기에 필요없을것 같아 그 부분을 삭제하고 실행해봐도

이상이 없었습니다.

위에 예제같은 경우를 델파이에서는 원형참조라고 하더군요.

위에 예제에서 unit2에 uses 구문을써서 unit1을 참조하는것이 맞는지요?

아니면 삭제해도 되는지요?

그리고 원형참조가 사용되야만 하는 경우도 설명해주셨으면 합니다.



... 초보라서 질문이 많았는데.. 나름대로 제가 궁굼한 점들을 자세히

써볼려고 했는데 의사 전달이
1  COMMENTS
  • Profile
    최용일 2001.02.28 23:28
    안녕하세요. 최용일입니다.



    A모듈(델파이에선 유닛이 되겟죠)에서 B모듈을 사용하구 B모듈을 사용하는 것을 원형참



    조(상호참조)라고 합니다. 님의 경우는 Unit1에서 Unit2를 참조하지만 Unit2에서 Unit1을



    참조하지 않은거 같으니까 원형참조는 아닌거 같구요... 참조하지 않은 유닛은 제거하는



    것이 좋습니다. 안해도 델파이가 쓰지 않은 유닛을 컴파일하지 않지만 그래도 약간의



    오버헤드가 들어가죠...



    델파이에서는 interface절에서의 상호참조는 혀용을 안합니다. 한쪽 유닛에서 inteface



    절에서 참조를 하였으면 다른쪽 유닛에선 implementation절에서 참조를 해야 합니다.



    양쪽 implementation절에서는 상관없구요...



    uses절은 씨의 #include와 같다고 보시면 됩니다....



    ^^ 항상 즐코하세요...



    김현덕 wrote:

    > 안녕하세요.

    > 제가 VB만 하다가 막상 델파이를 하려니까 헤깔리는군요.

    > 보통 VB에서는 공통함수를 Bas 확장자를 갖는 일명 모율에다

    > 기술해놓고 서로 다른 폼에서 불러옵니다.

    >

    > 델파이 경우를 알아보니 폼이 없는 unit 을 추가해

    > 그 안에다 공통함수를 기술해놓고 쓴다고 들었습니다.(맞는지?...)

    > 그런데 단순히 UNIT만 추가하면 되는것이 아니라 USES 구문을

    > 사용해 포함시켜야 한다고 하더군요,

    > 예로

    >

    > unit Unit1;

    >

    > interface

    >

    > uses

    > Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    > StdCtrls;

    > ...

    > var

    > Form1: TForm1;

    >

    > implementation

    > uses unit2;

    > =========================================================================

    > //unit2 는 공통함수들이 들어가는 UNIT입니다.

    > unit Unit2;

    >

    > interface

    > uses unit1;

    >

    > implementation

    >

    > //공통함수 기술...

    > =========================================================================

    > 이런식으로 구성하면 되더군요. 그런데 unit2 에 보면

    > interface 구문에 uses 로서 unit1 을 포함시켜 놨습니다.

    > 제가 보기에 필요없을것 같아 그 부분을 삭제하고 실행해봐도

    > 이상이 없었습니다.

    > 위에 예제같은 경우를 델파이에서는 원형참조라고 하더군요.

    > 위에 예제에서 unit2에 uses 구문을써서 unit1을 참조하는것이 맞는지요?

    > 아니면 삭제해도 되는지요?

    > 그리고 원형참조가 사용되야만 하는 경우도 설명해주셨으면 합니다.

    >

    > ... 초보라서 질문이 많았는데.. 나름대로 제가 궁굼한 점들을 자세히

    > 써볼려고 했는데 의사 전달이