Q&A

  • 공용함수 만들고 불러쓰려면 어떻게 해야 하나요?
안녕하세요  (^^)(__)

델파이 막 시작하는 초보라 이런것도 모른다고 화내지 마세요 ^^;

공용함수를 하나의 pas파일에 몰아 넣고, 그걸 다른 pas에서
불러서 쓰고 싶거든요..

그런데.. 어떻게 코딩 해야 할지 영 감이 안잡히네요...

간단한 예좀 들어 주실 분 안계실까요?.. 부디..

아래와 같이 더하기 함수를 만든다고 했을때
폼없는 함수같은거 만들때 델파이에서 New/Unit으로 추가하는게 맞지요?
거기서 함수만든 다음에 어떻게 코딩 진행해야 할지를 모르겠네요....

unit cals;

interface

implementation

function f_sum(ai_x, ai_y : integer);
begin
  result := ai_x + ai_y;
end;

end.
3  COMMENTS
  • Profile
    구창민 2003.03.11 03:49
    interface 절에

    함수헤더를 기술하시면

    외부유닛에서 그 함수를 사용하실 수 있습니다.

    물론 사용하실 유닛에서

    uses
      cals; 머 이렇게 include 해 주셔야 하겠지여..

    그럼~ 즐거운 프로그래밍 하시길~~


  • Profile
    박흥수 2003.03.11 04:46
    ^^; 답변 감사 드려요.. 그런데 이런메세지가 뜨던데요..
    공용모듈인 cals.pas에 다음과 같이 적었구요..
    unit cals;

    interface

    implementation

    function f_sum(ai_x, ai_y : integer) : integer;
    begin
      result := ai_x + ai_y;
    end;

    end.

    불러쓰는 unit1.pas에서 밑에 적은 소스처럼 불러쓰는데 에러 메세지가
    뜨는데요.. ㅜㅜ;
    Undeclared identifier: 'f_sum'
    Could not compile used unit 'Unit1.pas'

    unit Unit1;
    interface
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;
    type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    var
      Form1: TForm1;

    implementation
    uses cals;
    {$R *.DFM}

    procedure TForm1.Button1Click(Sender: TObject);
    var i : integer;
    begin
      i := cals.f_sum(1,2);
      showmessage(inttostr(i));
    end;

    end.





  • Profile
    이재훈 2003.03.11 18:40
    저도 초보인데 그게 좀 어렵더군요..
    그래도 허접하게 해결 했습니다.
    참고하시길....

    unit1.pas=============================================================
    unit Unit1;
    interface
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;
    type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    var
      Form1: TForm1;

    implementation
    uses cals;
    {$R *.DFM}

    procedure TForm1.Button1Click(Sender: TObject);
    var i : integer;
    begin
      i := f_sum(1,2);
      showmessage(inttostr(i));
    end;

    end.

    cals.pas=============================================================
    unit cals;
    interface
      function f_sum(ai_x, ai_y : integer) : integer;
    implementation

    function f_sum(ai_x, ai_y : integer) : integer;
    begin
      result := ai_x + ai_y;
    end;

    end.