Q&A

  • pulibic 함수선언은??
안녕하세요..

오늘 궁금한 것은?

머냐면...

공통 유닛을 만들려구 하는데... public으루 함수를 선언해서 다른 유닛에서도 그 함수를 쓰려구 하건든요...

그런데 선언이 안되요.. 함 봐주세요...



public

{ Public declarations }

function abc(str : string) : integer;

end;



이런식으로 선언했는데.. 다음과 같은 에러가 나옵니다.

"Unsatisfied forward or external declaration ...."



그래서 그냥 다음과 같이 선언을 하니 다른 유닛에서도 참조가 가능하더군요...



var

Form1: TForm1;



function abc(str : string) : integer;

implementation

.....



어떤 차이가 있는건지.. public으루 선언을 하려면 어떻게 해야 하는건지..

자세한 설명 좀 부탁드립니다.

2  COMMENTS
  • Profile
    감초 2001.05.20 02:28
    첫째 : "Unsatisfied forward or external declaration ...."의 에라가 난 이유는 분명히 function abc(str : string) : integer;을 class 외부에 선언할때

    function abc(str : string) : integer;로 했기 때문입니다.

    function T클라스.abc(str : string) : integer;로 했더라면 에라는 안났을 겁니다.



    그리고 다른 부분을 설명해 드리자면

    위의 방식으로 하면 나중에 그 object이나 class를 다른 variable로 만들어

    사용시 newVarName.abc(str)을 하면 되지만

    두번째 방식으로는 그렇게 사용할수가 없어요.





    궁그미 wrote:

    > 안녕하세요..

    > 오늘 궁금한 것은?

    > 머냐면...

    > 공통 유닛을 만들려구 하는데... public으루 함수를 선언해서 다른 유닛에서도 그 함수를 쓰려구 하건든요...

    > 그런데 선언이 안되요.. 함 봐주세요...

    >

    > public

    > { Public declarations }

    > function abc(str : string) : integer;

    > end;

    >

    > 이런식으로 선언했는데.. 다음과 같은 에러가 나옵니다.

    > "Unsatisfied forward or external declaration ...."

    >

    > 그래서 그냥 다음과 같이 선언을 하니 다른 유닛에서도 참조가 가능하더군요...

    >

    > var

    > Form1: TForm1;

    >

    > function abc(str : string) : integer;

    > implementation

    > .....

    >

    > 어떤 차이가 있는건지.. public으루 선언을 하려면 어떻게 해야 하는건지..

    > 자세한 설명 좀 부탁드립니다.

  • Profile
    블랙봉 2001.05.19 07:42
    궁그미 wrote:

    > 안녕하세요..

    > 오늘 궁금한 것은?

    > 머냐면...

    > 공통 유닛을 만들려구 하는데... public으루 함수를 선언해서 다른 유닛에서도 그 함수를 쓰려구 하건든요...

    > 그런데 선언이 안되요.. 함 봐주세요...

    >

    > public

    > { Public declarations }

    > function abc(str : string) : integer;

    > end;

    >

    > 이런식으로 선언했는데.. 다음과 같은 에러가 나옵니다.

    > "Unsatisfied forward or external declaration ...."

    >

    > 그래서 그냥 다음과 같이 선언을 하니 다른 유닛에서도 참조가 가능하더군요...

    >

    > var

    > Form1: TForm1;

    >

    > function abc(str : string) : integer;

    > implementation

    > .....

    >

    > 어떤 차이가 있는건지.. public으루 선언을 하려면 어떻게 해야 하는건지..

    > 자세한 설명 좀 부탁드립니다.



    TForm1도 Class입니다. 그리고 첫번째 방법에서는 선언하신 함수는 TForm1의 멤버 펑션이죠.



    그래서 그 함수의 정의부분에서는

    function TForm1.abc(str : string) : integer;

    begin

    end;

    로 하셔야 맞고....

    다른 유닛에서 불러쓸때는 Form1.abc()와 같이 불러쓰셔야 합니다.

    • 류성심
    • 2001.05.20 00:32
    • 4 COMMENTS
    • /
    • 0 LIKES
    • kylix
      2001.05.20 07:27
      하나만 만들어서 Sender파라매터를 이용하세요... 20개의 에디트의 OnEnter와 OnExit를 아래 이벤트로 ...
    • 하기
      2001.05.20 00:57
      참고하세요... is 연산자를 이용하여 Component의 종류를 알수 있고요 As연산자를 이용하여 그 해당 Comp...
    • 류성심
      2001.05.20 01:30
      하기 wrote: > 참고하세요... > is 연산자를 이용하여 Component의 종류를 알수 있고요 > As연산자를 이...
    • 김일배
      2001.05.20 06:31
      TEDIT로 부터 원하는 기능을 넣어 TColorEdit와 같은 컴포넌트를 하나 만들어 등록하여 사용하면 어떨까...
    • staman
    • 2001.05.19 23:54
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 강동희
      2001.05.21 22:47
      staman wrote: > MS액세스 프로그램에 포함되어 있는 MDB 파일을 파라독스 DB로 변환하고 싶은데요 > 실...
    • 2001.05.19 23:20
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김지엽
      2001.05.19 23:31
      급 wrote: > 급해서 그러는데 인스톨 쉴드를 구할수는 없을까요 > 있는곳을 가르켜 주면 후사 > 하겠습...
    • 초보
    • 2001.05.19 22:11
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 하기
      2001.05.20 00:28
      음냐리... 2.번에 and 가 하나 (' and Name = :Name1')빠진것 같군요... 이렇게요... 그리고 1번은 코딩이...
    • hobakpa
      2001.05.19 22:33
      정확하게 모라 말씀은 못드리지만.. if (edit24.text'') and (edit25.text'') then begin ...
    • 초보
      2001.05.21 21:17
      답변 대단히 감사드립니다. 많은 도움이 된 것 같습니다. 그런데도 제가 부족함이 많아서 또 한가지 에러...
    • 박영근
    • 2001.05.19 21:44
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2001.05.21 23:02
      안녕하세요. 최용일입니다. 수학시간에 다 배우셨을 텐데요... (X, Y)를 원점에 대한 Θ만큼 회전한 ...
    • 감초
      2001.05.20 02:22
      unit2 의 implementation 아래 부분에 uses unit1; 을 추가하세요. 전유대 wrote: > 안녕하세요? > ...
    • 송수정
      2001.05.19 18:59
      초보에용^^ wrote: > 안녕하세요.전 델파이는 완전 초보라.왜이렇게 힘든지.. > 고수님덜 좀 보시고 잘못...
    • 초보에용^^
      2001.05.21 06:31
      송수정 wrote: > 초보에용^^ wrote: > > 안녕하세요.전 델파이는 완전 초보라.왜이렇게 힘든지.. > > 고...
    • 송수정
      2001.05.19 19:03
      아기코알라 wrote: > 안녕하십니까? > 건강들 하시죠? > > 아직 정확한 답을 구하지 못해 이렇게 ...
    • 명탁
      2001.05.19 20:44
      송수정 wrote: > 아기코알라 wrote: > > 안녕하십니까? > > 건강들 하시죠? > > > > 아직 정확한 ...
    • 아기코알라
      2001.05.21 19:00
      명탁 wrote: > 송수정 wrote: > > 아기코알라 wrote: > > > 안녕하십니까? > > > 건강들 하시죠? >...
    • 김인성
    • 2001.05.19 12:19
    • 1 COMMENTS
    • /
    • 0 LIKES
    • kylix
      2001.05.20 21:10
      아마두 스탠다드버전인거 같은데 스탠다드버전에는 데이타베이스관련기능이 완전히 빠져있습니다... 프...
    • 궁그미
    • 2001.05.19 06:50
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 감초
      2001.05.20 02:28
      첫째 : "Unsatisfied forward or external declaration ...."의 에라가 난 이유는 분명히 function abc(st...
    • 블랙봉
      2001.05.19 07:42
      궁그미 wrote: > 안녕하세요.. > 오늘 궁금한 것은? > 머냐면... > 공통 유닛을 만들려구 하는데... pu...
    • 처보
    • 2001.05.19 05:21
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김한
    • 2001.05.19 04:48
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 수완
    • 2001.05.19 03:43
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최혜룡
      2001.05.19 03:54
      쉽지 않은 질문이네요 en-core.com에서 한번 물어보시죠 오라클전문가가 많더군요 수완 wrote: > ...
    • 김동수
      2001.05.19 20:33
      오라클 설치할때....언어를 선택하는 부분이 있습니다. 저는 코리언으로 설치 했구여...... 근데....다른...
    • 짱아
    • 2001.05.19 03:36
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 아폴론
      2001.05.19 04:01
      짱아 wrote: HIST_DEL은 삭제를 하는 쿼리문입니다... 프로그램을 런시켰을 경우 계속... EXECSQL; 에...
    • 강호규
      2001.06.25 19:53
      안녕하십니까 질문내용중에 사용하고 계신 DB에 대한 언급이 없네요... 트랜젝션을 지원하고 있는 DB를...
    • 짱아
      2001.05.19 20:57
      아폴론 wrote: > 짱아 wrote: > HIST_DEL은 삭제를 하는 쿼리문입니다... 프로그램을 런시켰을 경우 > ...
    • 최혜룡
      2001.05.19 04:08
      DB에서 Delete하는데 시간이 많이 걸리는 모양이네요 인덱스를 사용하는지 확인해보시죠 그리고 마지막 ...
    • 짱아
      2001.05.19 21:04
      우선 혜룡님 넘 감사해요~ 항상 늘~ ^^ 시간이 많이 걸린다면 오랜후에 처리가 되어야 하는데... 그상...
    • 최혜룡
      2001.05.20 01:53
      SQL*PLUS로 DELETE DML을 수행해보세요 (WHERE조건과 파라메터에 넘어가는 값도 상수화 해야겠죠) 삭제속...
    • 바보TT
    • 2001.05.19 03:14
    • 0 COMMENTS
    • /
    • 0 LIKES