Q&A

  • 사용자 정의함수 구현중의 오류...
// 숫자 버튼 클릭시
procedure TForm1.btnNum_0Click(Sender: TObject);
begin
DownNum(TButton(Sender).Tag)
end;


procedure DownNum(DnNum : integer);
begin
Tmp := Tmp + IntToStr(DnNum);
form1.label1.Caption := Tmp;
end;

버튼 클릭과 키 입력에서의 같은일을 하는 소스를 따로 묶어서 함수로 구현하려 합니다..
함수안에서 사용되는 변수는 모두 전역변수를 사용하였으며,
procedure DownNum(DnNum : integer); 를 프로시져 호출구문 맨 아래쪽에 선언했습니다(위에 버튼클릭 이벤트등의 밑에)
unsatisfied foward or external declaration: 'TFrom1.DownNum'
이 오류메세지입니다

다음은 선언부입니다
type
  TForm1 = class(TForm)
    btnNum_7: TButton;
    btnNum_4: TButton;
    btnNum_1: TButton;
    btnNum_8: TButton;
    btnNum_5: TButton;
    btnNum_2: TButton;
    btnNum_9: TButton;
    btnNum_6: TButton;
    btnNum_3: TButton;
    btnNum_0: TButton;
    Label1: TLabel;
    btnNum_Clear: TButton;
    btnNum_Div: TButton;
    btnNum_Mul: TButton;
    btnNum_Minus: TButton;
    btnNum_Plus: TButton;
    btnNum_Result: TButton;
    btnNum_Dot: TButton;
    procedure btnNum_0Click(Sender: TObject);
    procedure btnNum_ClearClick(Sender: TObject);
    procedure btnNum_DotClick(Sender: TObject);
    procedure btnNum_PlusClick(Sender: TObject);
    procedure DownNum(DnNum : integer);
    procedure DownSimbol(DnSmb : integer);

답변해 주신다면 감사드리겠습니다
항상 즐코하시구 비 오는데 조심하시길...
1  COMMENTS
  • Profile
    한원희 2003.02.22 19:27
    안녕하세요. 한원희입니다.

    아래의 소스를 보니까, 크게 두 가지 방법으로 해결할 수 있겠군요.

    먼저 DownNum을 TForm1에 속하지 않은 함수로 사용하는 경우입니다. 이경우에는 TForm1 선언부에 포함되어 있는 DownNum 부분을 삭제하시구요.
    implement 절(선언부)에

      procedure DownNum(DnNum : integer);

    를 추가하여, DownNum 프로시저를 선언하시거나,
    DownNum함수를 btnNum_0Click 이벤트보다 위에 위치하도록 하면 아래와 같은 오류가 발생하지 않을 겁니다.

    두번째는 DownNum을 TForm1의 멤버 메소드로 만들 경우입니다. 이 경우에는
      procedure TForm1.DownNum(DnNum : integer);
    이렇게 해주셔야 겠죠. ^^

    그리고, 팁으로 선언부에 여러 가지 메소드들을 추가한 다음에 클래스의 선언부에서 Ctrl+Shift+C 단축키를 누루면, 선언한 메소드 및 프로퍼티의 골격을 구현부에 완성시켜 줍니다. 노가다를 획기적으로 줄일 수 있져 ^^;

    그럼, 즐푸~

    • 이승수
    • 2003.02.22 19:10
    • 1 COMMENTS
    • /
    • 1 LIKES
    • 한원희
      2003.02.22 19:27
      안녕하세요. 한원희입니다. 아래의 소스를 보니까, 크게 두 가지 방법으로 해결할 수 있겠군요. 먼저...
    • 이지영
    • 2003.02.22 15:49
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 티모니
      2003.02.22 21:03
      TList를 사용해 보심이 어떨지.. ㅡㅡa
    • 이동현
    • 2003.02.22 05:10
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 강석찬
      2003.02.22 21:32
      델파이 데모안에 비슷한 내용이 있는것 같네요 그걸 한번 참고해 보세요 대략적인 경로는 C:Program File...
    • 정성훈
      2003.02.22 21:30
      고객명이 그룹으로 작성된것같은데 아래 총 5건 부분있죠? Sum 되는거. QRExpr1 이거 사용하신것 같은...
    • 임우식
      2003.02.22 08:33
      filekey는 인덱스가 정의된 상태에서 가능한데요...이것은 로컬테이블의 인덱스에서 가능한 것으로 알고 있...
    • 임성주
    • 2003.02.22 04:40
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김수경
      2003.02.23 03:59
      결론부터 말씀드리면 .... 원하시는 결과를 얻을 수 없답니다. 그 원인은 Field(Attribute)의 의미가 정...
    • 연기훈
      2003.02.24 21:21
      ㅜ.ㅜ MS SQL 엔 DATETIME 형에서 한번에 처리 했는데... 파라독스엔 DATE, TIME이 구분되어있어서....
    • 윤성용
    • 2003.02.22 04:23
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 유경희
    • 2003.02.22 02:46
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2003.02.22 03:49
      말씀하시는 그리드가 DB 그리드라고 생각하고 답변드릴께여.. 아래처럼 페이지업다운 메세지를 DBGrid ...
    • 유경희
      2003.02.22 20:43
      넘넘 감사드려염^^ ㅎㅎㅎ 정말 많은 도움 되었습니다~ 감솨~ (--)(__)(--)
    • 델사랑
    • 2003.02.22 02:46
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김지엽
      2003.02.24 21:28
      DBGRAPH 에서 발생한 에러가 아니라 TQuery에서 발생한 에러인거 같은데요? 그 쿼리의 내용이 아래의 내용...
    • 델사랑
    • 2003.02.22 02:45
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2003.02.22 03:05
      안녕하세요. 최용일입니다. 어떻게 만드느냐, 어떤 프로토콜을 쓰느냐에 따라서 될수도 있고 안될수도 ...
    • 델사랑
      2003.02.22 03:45
      제가 예전에 간단하게 쪽지만 주고 받을수 있는 메신저를 만들어봤거든요 당연히 서버프로그램이 설치된곳...
    • 최은석
    • 2003.02.22 02:44
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2003.02.22 03:06
      안녕하세요. 최용일입니다. open말고 opennew로 띄워보세요... ^^ 항상 즐코하세요...
    • 최은석
      2003.02.22 03:20
      답변 감사합니다.. 한데.. 아무런 반응도 없네요... opennew 가 아닌거 같은데여.. 다른방법 없나요?
    • 구창민
      2003.02.22 03:46
      은석님 아래 코드를 사용해보세요.. 새창으로 팍팍팍.. ^^;; 즐건 프로그래밍 하시길~ uses ...
    • 최용일
      2003.02.22 03:37
      안녕하세요. 최용일입니다. 레지스트리 건드려야 할거 같은데 그냥 익스플로러 패스 구해가지고 하시는 ...
    • 최은석
      2003.02.22 03:45
      해결했습니다..
    • 연기훈
      2003.02.22 04:34
      각 칼럼의 width 길이를 조절하세요... 그리에드에서 마우스 우측버튼 클릭하면 칼럼 에디터가 있어여 ...
    • 송성환
    • 2003.02.22 02:05
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2003.02.22 03:19
      안녕하세요. 최용일입니다. 가변레코드에서 case는 분기가 아니라 구별하는데 쓰입니다. (쩝~ 설명이 잘...
    • 송성환
      2003.02.22 03:29
      답변 감사합니다... 많은 도움이 되었습니다... 다시 한 번 감사합니다...
    • 이정택
    • 2003.02.22 01:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 연기훈
      2003.02.22 04:43
      select 하실때 주소 select 는 Qry_Code로 하시지 않았는지요..?? 다른 새로운 걸로 검색해야 함니다. ...
    • 최용일
      2003.02.22 03:22
      안녕하세요. 최용일입니다. 윈도우컨트롤들(TWinControl)만 포커스를 가질수 있습니다. 그래픽컨트롤(TG...
    • 김민수
    • 2003.02.22 01:16
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2003.02.22 03:40
      안녕하세요. 최용일입니다. 델파이의 유닛 맨 끝은 end. 입니다. 맨끝에 "."이 빠졌네요... ^^ 항상 ...
    • 오병준
    • 2003.02.22 00:47
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2003.02.22 03:42
      안녕하세요. 최용일입니다. 제 생각에는 TV수신카드에 딸린 프로그램은 영상에 관한 처리를 TV수신카드...
    • 진돌
    • 2003.02.21 23:50
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2003.02.22 00:10
      안녕하세요~ 구창민입니다. ShellExecute 의 원형은 아래와 같네여.. HINSTANCE ShellExecute( &...
    • 구창민
      2003.02.22 00:13
      검색은 국력입니다. ^_^; 즐거운 프로그래밍 하시길~~ http://www.delphi.co.kr/zboard/view.php?id=...