Q&A

  • implementatiion 과 interface
안녕하세요



uses문을 implementatiion 문 이후에 선언하는것과

interface문 이후에 선언하는것과 무슨 차이가 있나요?



그리고 가급적 어디다 써주는것이 좋을지 알려주세요

2  COMMENTS
  • Profile
    이진수 2001.03.05 20:36
    안녕하세요 이진수입니다.



    볼까요?

    밑에 분 말도 맞긴한데요 다시 한번 정리해볼께요



    델파이는 Modular언어입니다.

    그래서 Unit이란 개념이 쓰이구요

    이 유닛에는 크게 두부분이 있습니다.



    interface부분과 implementation부분입니다.

    이둘의 차잇점을 보겠습니다.



    interface

    이부분은 말그대로 다른 유닛들에게 노출되는 부분입니다.

    이부분에 주로, 상수, 루틴, 클래스 선언등을 하죠



    implementation

    이부분에는 interface에 선언된 루틴의 실제 함수를 구현하죠

    단, 이부분에는 다른 루틴에는 노출되지 않는 무언가를 할 수 있는 부분이죠



    이것의 의미는, 아래에서 어떤 분이 설명하셨듯이 인터페이스 부분에서 순환 참조(circular reference)를 피하기 위해 사용하는 의미일 수도 있고 다음과 같은 의미도 됩니다.



    1. A유닛의 interface절에 B유닛을 사용 하는 경우, B의 인터페이스에 변화가 온다면, A유닛의 인터페이스에게도 영향을 미쳐서, A유닛을 사용하는 모든 유닛을 재 컴파일 하여야 한다.



    2. A유닛의 implementation절에 B유닛을 사용하는 경우, B유닛이 바뀌면 A유닛만 재 컴파일하면 된다.



    음... 이해가 돼셨는지 몰겠네요 그럼 ^^





    김현덕 wrote:

    > 안녕하세요

    >

    > uses문을 implementatiion 문 이후에 선언하는것과

    > interface문 이후에 선언하는것과 무슨 차이가 있나요?

    >

    > 그리고 가급적 어디다 써주는것이 좋을지 알려주세요

  • Profile
    감초 2001.03.05 02:23
    이것은 실제로 델파이 이전에 파스칼 초보자들에게는 아주 중요한 문제입니다.

    Cross Reference문제라고도 하는데 만약 두 unit이 서로를 interface에서 선언할 경우에는 Cross Reference라고 해서 실제는 Error가 나옵니다.

    하지만 밑에서 implementation 이후에 선언하면 아무런 문제가 없지요.

    실제 내용은 더 복잡하지만 시간 관계상...

    주로 밑에 하시면 문제가 없어요.



    김현덕 wrote:

    > 안녕하세요

    >

    > uses문을 implementatiion 문 이후에 선언하는것과

    > interface문 이후에 선언하는것과 무슨 차이가 있나요?

    >

    > 그리고 가급적 어디다 써주는것이 좋을지 알려주세요

    • 델초보
    • 2001.03.05 18:50
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 이진수
      2001.03.06 06:39
      전체 소스 입니다. 근데.. 델초보님 답변 해주신 분한테, 공부좀 더하라는 말은 좀 심한듯 합니다. 그...
    • Larson
      2001.03.05 22:07
      델초보 wrote: > 안녕하세요. > 초보라 어려움이 많아 고수님들께 질문을 드립니다. > 두날짜사이의 달...
    • 델초보
      2001.03.05 22:46
      > procedure TForm1.Button1Click(Sender: TObject); > var > d1, d2, d3: TDateTime; > begin > d...
    • Larson
      2001.03.05 23:33
      델초보 wrote: > > procedure TForm1.Button1Click(Sender: TObject); > > var > > d1, d2, d3: TDate...
    • 이제관
      2001.03.05 19:29
      년을 날짜로 환산해 보세요. 1년은 365일 이니까 환산한 값으로 뺀후 몫만 취하고 나머지는 버립니다. ...
    • 준초보
    • 2001.03.05 18:13
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하눌이
      2001.03.05 19:52
      준초보 wrote: > 일반적으로 실행파일이 아규먼트를 받아 초기 실행할 수 있는데요 > 델파이에서는 어떻...
    • 엉망이
    • 2001.03.05 06:18
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 권민호
      2001.03.05 19:05
      엉망이 wrote: > 클라이언트쪽에서 서버측 프로바이더에 sql문을 넘겨 서버에서는 request뭐더라? 하여간 ...
    • 엉망이
      2001.03.05 20:50
      권민호 wrote: > 엉망이 wrote: > > 클라이언트쪽에서 서버측 프로바이더에 sql문을 넘겨 서버에서는 req...
    • ^**^!~
    • 2001.03.05 06:06
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이진수
      2001.03.05 21:09
      흠... 이건 데이터베이스 관련 질문 아닌데 ... 어쨌건, 에러의 원인은 여러가지겠네요 만일 Delphi4...
    • ^**^~!
      2001.03.05 23:20
      델파이4에서는 ado컴포넌트를 사용을 안했거든요..... 글구 님이 말씀하신것도 에러가 나구... 좀더 자세...
    • 이진수
      2001.03.06 06:41
      음... 그렇게만 질문하시면 암것도 해드릴 수가 없네요. 뭐가 어떻게 에러가 난다. 라든지 에러 메세지가...
    • 김현덕
    • 2001.03.05 03:23
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이진수
      2001.03.05 11:42
      Form을 Auto Create한다는 의미는 프로그램 로딩될 시 폼을 자동생성하여 메모리에 올려놓고, 나중에 그 것...
    • kylix
      2001.03.05 03:35
      프로젝트에서 한두개의 폼만을 사용한다면 별 상관이 없겠죠... 하지만 수십개의 폼을 사용한다 할때 그...
    • 김현덕
    • 2001.03.05 00:42
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이진수
      2001.03.05 20:36
      안녕하세요 이진수입니다. 볼까요? 밑에 분 말도 맞긴한데요 다시 한번 정리해볼께요 델파이는 Modu...
    • 감초
      2001.03.05 02:23
      이것은 실제로 델파이 이전에 파스칼 초보자들에게는 아주 중요한 문제입니다. Cross Reference문제라고도...
    • 이명학
    • 2001.03.05 01:31
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 하눌이
      2001.03.05 19:54
      이명학 wrote: > > MDB와 오라클을 서로 Import/Export를 이용하는 루틴을 이용하고 있습니다. > 우선 ...
    • 이명학
      2001.03.05 20:40
      하눌이 wrote: > 이명학 wrote: > > > > MDB와 오라클을 서로 Import/Export를 이용하는 루틴을 이용하...
    • 까망^^;
      2001.04.13 22:52
      신제훈 wrote: > 있을까여 ? > 모든 이벤트를 다 써봤지만 그 이벤트는 못 잡는군여.. > 허허 > 참...
    • 이진수
      2001.03.05 12:04
      에고 제가 게을러서요 걍 설명 드릴께요 ^^ 우선 한페이지에 모든걸 출력시키시려면 StretchDraw란게 있...
    • 초보짱
    • 2001.03.04 10:34
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 도지성
      2001.03.05 18:55
      초보짱 wrote: > 제가 이번에 벽돌 깨기를 만들려구 하는데여.... > 공이 벽돌 혹은 벽에 맞구 튕길때 각...
    • kylix
      2001.03.05 04:55
      흠~~~ 기본적인거는 입사각과 반사각이 같다는 거겠죠... 밑에 조종하는 패널에 맞을땐 조종하는 패널의...
    • 초보짱
      2001.03.05 05:06
    • kylix
      2001.03.05 08:04
      그게 어떻게 90도가 돼나여??? 그럼 수직으로 입사하면 수평으로 날아가나여??? x축을 향하여 입사할때 ...
    • 초보짱
      2001.03.04 13:36
    • 김현덕
    • 2001.03.04 07:13
    • 1 COMMENTS
    • /
    • 0 LIKES
    • kylix
      2001.03.04 08:26
      검색해봐여~~~ SringReplace로... 김현덕 wrote: > 안녕하세요 > 보통 금액에 붙는 , 만 삭제하고...
    • 토끼탕
    • 2001.03.04 04:04
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김진호
      2001.03.04 04:19
      토끼탕 wrote: > 안녕하세요.. 다이렉트X를 이용해서 만들어진 소스를 받아서 분석해보고 있는데요.. 이거...
    • 이승근
    • 2001.03.04 00:58
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김일영
      2001.03.04 00:58
      ShowModal로 띄우고자 하시는 form의 Visible을 False로 바꿔 놓으세요. ============================...