많은 분들이 델파이에서는 잘되는데 왜 빌더에서는 안되냐며 어려워 하시고 헤메시던데.
생각보다 간단합니다.
OleObject의 반환값인 Variant를 잘 이해하신다면 쉽게 풀어 낼수 있습니다.
델파이에선 Variant을 자동으로 처리해주지만 빌더는 직접 처리하는 차이죠.
그리고 브라우저객체구조를 잘 모르셔서 힘드시다면 VisualStudio 6.0에 보시면
InterDev라는 웹개발 툴이 있습니다.
거기서 javascript로 코딩해 보시면 객체구조를 간단히 확인 할 수 있습니다.
델파이 :
WebBrowser1.OleObject.Document.form1.userid.value := 'k133'; // 속성 접근
WebBrowser1.OleObject.Document.all.item('userid').value := 'k133';
WebBrowser1.OleObject.Document.all.item('button1').Click; //프로시저 호출
빌더:
Variant vForm = CppWebBrowser1->OleObject.OlePropertyGet("Document").OlePropertyGet("form1");
Variant vID = vForm.OlePropertyGet("userid");
Variant vButton = vForm .OlePropertyGet("all").OleFunction("item", "button1");
vID.OlePropertySet("value", "Hello"); // 속성 저장하기
vButton.OleProcedure("click"); // 프로시저 호출
ShowMessage(vID.OlePropertyGet("value")); // 속성 가져오기 |