Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[7997] 아쉬운대루 해결하긴 했는데 이렇게 하는게 맞는지 몰겠네염....함 봐주세영 ㅜ.ㅜ
찌요리~~ [barleytea] 594 읽음    2002-03-07 21:12
찌요리~~ 님이 쓰신 글 :
: 안녕하세엽~~~
:
: ActiveX컨트롤이 있는데요, UDT Variant 로 값을 반환하는 함수가 있습니다
:
: 근데....이거 원래 구조체로 어케 바꿔여?  ㅡ_ㅡ;;;
:
:
: 음..예를 들면
:
: 임포트된 ActiveX 컨트롤 파스칼 파일중에 다음과 같은 레코드 정의가 나타납니다
:
: // *********************************************************************//
: // Declaration of structures, unions and aliases.                       //
: // *********************************************************************//
:
: ...
: ...(중략)
: ...
:
: UDT = packed record
: x: Integer;
: y: Integer;
: end;
:
: ...
: ...(중략)
: ...
:
: procedure TTest.GetUDT(var pVal: OleVariant);
: begin
:   ControlInterface.GetUDT(pVal);
: end;
:
:
: 위에 함수가 Variant로 반환하지만 실제로 안에 들어있는건 UDT 레코드입니다
: 아래처럼 값을 얻는건 간단한데... 그담은 어떠케 하죠?
: (아래 부분은 걍 빈프로젝츠 열어서 폼 더블클릭한 함수입니다)
:
: procedure TForm1.FormCreate(Sender: TObject);
: var
:   val: OleVariant;
: begin
:   Test1.GetUDT(val);
: end;
:
:
: 답변 꼭 부탁드려영~~~~~     ^___________________^
:
:



type
  PUDT = ^UDT;

  StickyVariant = packed record
  vt: Word;
  reserved1: Word;
  reserved2: Word;
  reserved3: Word;
  udt: PUDT;
  pRecInfo: Pointer;
  end;
  PStickyVariant = ^StickyVariant;


procedure TForm1.FormCreate(Sender: TObject);
var
  val: OleVariant;
  psv: PStickyVariant;
begin
  Test1.GetUDT(val);
  psv := Pointer(@val);
  ShowMessage(IntToStr(psv.udt.x));
end;

+ -

관련 글 리스트
7996 [질문] ActiveX 컨트롤의 UDT Varient 반환값 얻는 방법좀... 찌요리~~ 659 2002/03/07
7997     아쉬운대루 해결하긴 했는데 이렇게 하는게 맞는지 몰겠네염....함 봐주세영 ㅜ.ㅜ 찌요리~~ 594 2002/03/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.