안녕하세요 좋은생각입니다.
계속 질문만 올리게 되네요..헤헤(염치없이.. ^.^;)
앞으로 꾸준히 열심히 할께요.... 아무튼 거두 절미하고,,,
컴포넌트만들고 이것을 다른 언어에서도 사용할수 있게
ActiveX로 전환하고 있는데 이때, 여러가지 문제가 발생을 하더군요
ComponentState라든가 이런것들은 에러는 없지만 전혀 먹히질 않죠 아무튼
워낙아는게 없고 맨땅에 해딩하는 식이라...후후,,고수님들의 도움을 부탁합니다.
A라는 컴포넌트가 B,C,D,E,F...의 여러개의 컴포넌트를 제어하는 그럼 컴포넌트
들을 ActiveX화 하고 있는데요, 다 아시겠지만 델파이 프로퍼티에 올수 있는 타입을
100로 지원을 하고 있지 못하더군요, string, integer, Boolean만 되는 것 같은데,,
맞는지는 확실히 몰르겠어요 다른 것은 프로퍼티 페이지를 통해서 자기가 원하는 값을
만들어야 합니다. 그런데 제일 문제는 특정한 클래스타입의 프로퍼티를 가지지
못하더라구요,, 다시말해서 다른 컴포넌트를 프로퍼티로 둘수 없다는것인데, 왜냐하면
위의 B,C,D,E,F..의 입장에서 자기를 조종(A와 같은)하는 주인 컴포넌트가 누구인지를
알아야하는데 ActiveX에서는 이게 좀 애매합니다.(델파이는 무지 간단한데...쩝)
그래서 전역변수로 주인컴포넌들을 담는 리스트와 수발을 드는 하인 컴포넌트들을 담는 리스트
를 두어서 컴포넌트들이 생성될때 객체포인터를 리스트에 넣어 두었습니다.
그래서 모든 작업을 이 객체 리스트를 참조해서 작업을 하도록 했는데,,,
문제는, ActiveX화하여 VB에서 쓸 때 델파이 소스에서 컴포넌트들의 이름이 전혀 접근
이 안되더군요,,즉 ActiveX소스에서 .Name로 객체이름을 접근한것은 ActiveX가 실제로
쓰여 질때는 전혀 값을 읽어 오지 못하더군요. 이름을 알수 있는 방법이 없을 까요?????
이름을 알아야 위의 각컴포넌트를 구별해 B,C,D,E,F의 각각 고유의 일들을 처리할수가
있습니다. 현재는 컴포넌트가 등록될때 또라는 변수를 두어 이름을 만들어 보관하고 있다가
ActiveX에서 필요할때 이변수를 접근해 쓰고 있는 편법을 쓰는데 역시 좀 문제가 발생할 소지
가 다분합니다.
고수님들의 도움을 부탁합니다
Vcl를 만든다고 고생했는데 애써만든걸 이 ActiveX땜시 다시 다 뜯어고치고 있습니다,
이런 시행차고를 범하지 않게, Vcl를 ActiveX로 전환시 이처럼 문제되는 점들을
나열해주시면 정말 감사하겠습니다.
현재는 잔머리를 굴려서 편법을 쓰고있는데 역시...좀 불안하군요..
꿈의 언덕에서 /좋/은/생/각/..
|