void __fastcall TForm2::ButtonTrackPathClick(TObject *Sender)
{
Variant doc;
Variant r;
Variant w;
CppWebBrowser->Navigate(WideString("D:\\DLTS2010\\Test\\MapTest\\index9.html").c_bstr());
doc = CppWebBrowser->Document;
w = doc.OlePropertyGet("parentWindow");
w.OleFunction("AddTrackCoordinate",37.414655,127.140197); // 알수 없는 이름입니다.
w.OleFunction("AddTrackCoordinate",37.414645,127.140138);
w.OleFunction("AddTrackCoordinate",37.415498,127.137457);
w.OleFunction("AddTrackCoordinate",37.416053,127.136530);
w.OleFunction("AddTrackCoordinate",37.416955,127.133397);
....
}
Navigate()로 페이지 여는 루틴과,
Javascript호출하는 부분을 두 개의 Event(Button으로 처리)으로 분리하면 정상동작하는데..
하나의 함수 안에 넣으면 위와 같이 "알수 없는 이름입니다"라는 메세지가 나오는데..
이건 어떻게 해야 하는 지? Page Load하는 속도가 느려서 그런 것 같기도 하고..
도와주세요. 감사합니다.
이현수 님이 쓰신 글 :
: Variant::OleFunction은 매개변수 갯수에 따라 32개가 있는데요
: 매개변수 지정에 있어서 핵심은, 첫번째에는 함수이름문자열, 두번째부터는 함수이름문자열이 뜻하는 함수에 필요한 매개변수들을 차례대로 지정합니다.
: 예를 들어, int Func1(int a, int b);를 호출하려면
: int res = aVariantObject.OleFunction("Func1",5,7); 형식으로 해야 합니다.
: 그러므로 질문 하신 내용의 경우 형식상으로는,
: w.OleFunction("AddTrackCoordinate",37.414655,127.140197); 로 해야 하겠지요.
:
: 땅주인 님이 쓰신 글 :
: : 팁&트릭란에 Builder에서 Web Page의 Javascript호출하는 방법이 나와 있던데..
: : 그대로 해보니..잘 안되는데요.. 뭘 잘못했는 지... 감이 안 와서요..
: :
: :
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=890
: :
: : Javascript 코드는 아래와 같고,.. 정상적으로 동작하는 것을 모두 확인한 상태입니다.
: :
: : function AddTrackCoordinate(x,y)
: : {
: : TrackCoordinates[CoordinateIndex] = new google.maps.LatLng(x,y);
: : CoordinateIndex = CoordinateIndex + 1;
: : }
: :
: : function ShowTrackPath()
: : {
: : TrackPath = new google.maps.Polyline({
: : path: TrackCoordinates,
: : strokeColor: "#FF0000",
: : strokeOpacity: 1.0,
: : strokeWeight: 3
: : });
: : TrackPath.setMap(Map);
: : }
: :
: :
: : 호출은 아래와 같이 했습니다.
: :
: :
: : Variant doc;
: : Variant r;
: : Variant w;
: :
: : doc = CppWebBrowser->Document;
: : w = doc.OlePropertyGet("parentWindow");
: :
: : w.OleFunction("AddTrackCoordinate(37.414655,127.140197)"); // error: 알수없는 이름입니다
: : w.OleFunction("AddTrackCoordinate(37.414645,127.140138)");
: : ...
: :
: :
: : 에러 메세지는 "알수없는 이름입니다" 자바스크립트 함수 이름을 못 찾는 것 같은데..
: : 어떻게 해야 할 지.... ?
: : 고수님들의 도움이 필요합니다.
: :
: : 목적은, google map의 javascript API를 이용하여 차량의 GPS 데이터를 기반으로
: : 운행 괘적을 표시하려 합니다.
: :
: : 감사합니다.