위에서 스크립트 부분은 onclick 과 script 태그 부분인데요,
C++ 에서 textbox 나 form 에 대한 클래스를 정의하고
위의 스크립트 부분을 실행하고 싶습니다.
(맞는 문법이라고는 할 수 없지만 저렇게 코딩하고 쓸 수 있었으면 좋겠습니다.)
위에서 GlobalFunc 는 글로벌 함수라고 할께요, sqstd의 print() 같은..
그런데 setLabel 은 글로벌함수가 아니라 textbox 클래스의 메소드이고,
someFormFunc 는 form 클래스의 메소드라고 하지요,
일단.. global(?) 과 this 의 개념이 불확실합니다.
매뉴얼을 보면 두개가 따로 지원되는 것같은 느낌이었는데,
api 에는 this 에 대한 지원이 없고 root table 만 설정할 수 있는 것 같습니다.
그 root table 이 아마도 global 인것 같고요..
이 둘은 항상 같은 것인가요? 아니면 독립적으로 두개가 동시에 존재할 수 있나요?
만약 둘이 다르다면 위처럼 스크립트를 쓸수도 있겠다는 생각인데요,
textbox 의 인스턴스를 this 로 셋팅하고 (방법이야 어쨌건 개념적으로.. 가능하다는 전제하에.. -_-)
onclick 스크립트를 실행하면 textbox의 setLabel 을 호출하고 또 global 함수인 GlobalFunc 도 호
출하고..
마찬가지로 아래쪽 스크립트는 this 와 global 이 다르다는 전제하에 form 쪽의 script 태그 부분을 실행할 때는
form 의 인스턴스를 this 로 셋팅후 실행하고 싶은데.. (안된다면 말짱 황이지만..)
그런데 헤더파일을 아무리 봐도 this 관련된 것을 셋팅해줄것 같은 api 를 못찾았고
오로지 sq_setroottable 만 있는 것 같아서, this 는 스크립트를 실행할 때의 global (root)
context 이지
않을까 생각됩니다. 만약 그렇다면 this.setLabel 을 호출가능하도록 설정한다면 GlobalFunc 는 호출이 실패할것
같고요..
squirrel 에 대해 잘 몰라서 위 내용에 단어 사용이 적절한가는 모르겠는데요,
html 해보신 분은 자바스크립트로 위와같이 쓰는 것에 대해 개념은 익숙하시리라 생각합니다.
squirrel 은 위와같은 상황에 쓸 수 있는 언어일까요?
yagur
unread,
Apr 8, 2008, 7:33:37 AM4/8/08
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
scopping/this/roottable에 관한 쓰레드가 있습니다. (fagiano가 Alberto Demichelis입니
다. <언어 저자>)
보면 아시겠지만 java나 c++의 this와 유사합니다.
A = C++ TextBox 객체,
B = Squirrel TextBox 객체
제 생각에 xml 파싱중 B를 A로부터 상속받아 인스턴스를 생성하면 Squirrel 객체가 됩니다. C++의 객체를 상속받
아 Squirrel 객체로 파생될수 있습니다만, 아마 그렇게 하길 원하시진 않을것 같습니다. TextBox객체 자체는 C++객체
인데 클릭이벤트가 발생했을때 onclick="..."으로 지정한 부분의 스크립트가 호출되길 원하시는것으로 추측하고 있습니다.
방법은 어떻게 설계하느냐에 따라 꾀 여러가지가 될것같습니다. Squirrel 객체와 C++객체간에 레퍼런스를 넘겨 상호 참조
식으로 갈수도 있습니다. B가 A를 참조하며, A의 인터페이스를 갖고 있어, A를 위임하면 this를 통해 A로 접근할수 있습니
다.