// 숫자 버튼 클릭시
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);
답변해 주신다면 감사드리겠습니다
항상 즐코하시구 비 오는데 조심하시길...
아래의 소스를 보니까, 크게 두 가지 방법으로 해결할 수 있겠군요.
먼저 DownNum을 TForm1에 속하지 않은 함수로 사용하는 경우입니다. 이경우에는 TForm1 선언부에 포함되어 있는 DownNum 부분을 삭제하시구요.
implement 절(선언부)에
procedure DownNum(DnNum : integer);
를 추가하여, DownNum 프로시저를 선언하시거나,
DownNum함수를 btnNum_0Click 이벤트보다 위에 위치하도록 하면 아래와 같은 오류가 발생하지 않을 겁니다.
두번째는 DownNum을 TForm1의 멤버 메소드로 만들 경우입니다. 이 경우에는
procedure TForm1.DownNum(DnNum : integer);
이렇게 해주셔야 겠죠. ^^
그리고, 팁으로 선언부에 여러 가지 메소드들을 추가한 다음에 클래스의 선언부에서 Ctrl+Shift+C 단축키를 누루면, 선언한 메소드 및 프로퍼티의 골격을 구현부에 완성시켜 줍니다. 노가다를 획기적으로 줄일 수 있져 ^^;
그럼, 즐푸~