아래 소스를 참고하시기 바랍니다..
@는 변수나 함수 등의 주소를 포인터로 돌려줍니다..
파스칼은 문법이 엄격해서..
형이 다른 것은 반드시 변환해줘야 하므로..
아래처럼 하시면 됩니다..
From 류..
Procedure Aaa;
Begin
End;
procedure TForm1.Button1Click(Sender: TObject);
Var
iAddr : Integer;
begin
iAddr:= Integer(@Aaa);
ShowMessage(IntToStr(iAddr));
end;
신형환 님이 쓰신 글 :
: 죄송합니다. 제가 정확히 기술하지 못했나보군요.
:
: 정수형 변수에 프로시저의 주소값을 대입하는 것입니다.
:
: 프로시져의 주소를 integer형 변수에 저장하고 싶어서입니다.
:
: 그럼.. 도움말씀 부탁드립니다.
:
:
: 류종택 님이 쓰신 글 :
: : 질문의 의도를 명확하게 하여 주시기 바랍니다..
: : 함수를 정수형으로 바꾸는 것이 무슨 의미인지..
: :
: : 만약 결과값을 받는 것이라면..
: : Function Aaa:Integer;
: : Begin
: : ..
: : End.
: : 하시면 될터이고..
: :
: : 함수의 주소를 알고 싶다면..
: : @Aaa 하시면 됩니다..
: :
: : 파스칼이 아니라 C라 할지라도 이해가 안가는 질문입니다..
: :
: :
: : From 류..
: :
: : 신형환 님이 쓰신 글 :
: : : 안녕하세요?
: : :
: : : procedure를 정수값으로 변환하고 싶은데요.
: : : 파스칼이 짧아서.. 아무리 고민해도 안되는군요.
: : :
: : : 가령 아래와 같은 프로시져의 값을..
: : : procedure Aaa(Sender:TObject);
: : : begin
: : : ;
: : : end;
: : :
: : : 정수형 변수를 선언하고..
: : : intvar : Integer
: : :
: : : intvar := Integer(Aaa) ; 요런식으로 넣고 싶습니다.
: : :
: : : 도움 말씀 부탁드려요.
: : :
: : : 신형환
|