Q&A

  • [질문]메쏘드 프러시저를 등록하는 방법 좀 알려주십시오

아래와 같이 선언유닛에 하나의 buttonclick메소드를 만들어 두고(`method`라는 문자열을 보여주는)

다른 폼에서 버튼을 누르면 그 메소드가 사용되게 하는 것입니다.

저의 소스로는

[DCC Error] Unit13.pas(31): E2009 Incompatible types: `method pointer and regular procedure`가 나옵니다

검색해보니 메쏘드를 등록하려면  메소드타입(of object)으로 해야한다는 것 같은데 저의 소스로 예제하나 작성

 

해 주실분 계실까요



--사용할 폼
procedure TForm13.FormCreate(Sender: TObject);
var   CM : TCM;
begin
  cm:=abcde;
  Button1.OnClick:=cm;
end;

--선언하는 유닛(공용유닛)
type
  TCM = procedure ();
  procedure abcde ();

implementation

procedure abcde ();
begin
  Showmessage(`Method`);
end;

1  COMMENTS
  • Profile
    zeliard 2012.01.31 21:21

    이벤트 메소드는 객체의 함수입니다. 따로 객체를 하나 만드시고 거기서 처리하세요