Q&A

  • 클래스 멤버함수를 포인터 함수로 사용
type
  TChromeCtrl = class(TForm)
  {중간생략}
  private
    FrameLoaded:bool;
  {중간생략}
  end;

procedure TChromeCtrl.IterateNodes(Node: ICefDomNode);
begin
  {do Something...}
  FrameLoaded := True;   <<--- Exception !!!                                                  
end;

procedure TChromeCtrl.CallbackGetSource(const ADocument: ICefDomDocument);
begin
  IterateNodes(ADocument.Body);
end;

procedure TChromeCtrl.TestFuc;
begin
  Chrome.Browser.MainFrame.VisitDomProc(@TChromeCtrl.CallbackGetSource);
end;

크롬컴포넌트가지고 놀구있는데 제가 이해할 수 없는이 생겼습니다.
어떤 메소드에서 함수의 포인터 주소를 받아서, 
함수원형을 그대로 만들어주고 @ 붙히고, 컴파일하니까 정상적으로 잘댓습니다.
그런데 그 함수에서 클래스 멤버변수 접근하는데 자꾸 오류가 생깁니다.



클래스 멤버함수에서 멤버변수에 접근하는데 오류가 생기는 이유가 무엇을까요?!
1  COMMENTS
  • Profile
    이정욱 2014.02.24 06:41

    위의 소스에서는 오류를 찾기 힘들것 같습니다. 혹시 다른데서 나는 에러 아닐까요...?