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
[14564] Re:Unit에서 OLE 객체를 생성할 때
gomsun2 [vhrvnd723] 2134 읽음    2013-01-16 09:31
CoInitialize를 호출 하셨나요 ?
uses
  ActiveX;

initialization
  CoInitialize(nil);

finalization
  CoUnInitialize; 
end.


박태성 님이 쓰신 글 :
: unit uExcelOut;

: interface

: uses
:   SysUtils, Classes;

: Type
:   TExcelProc = class(TObject)
:   protected
:   public
:     constructor Create;
:     destructor Destroy; override;
:   end;

: var
:   ExcelApp : OleVariant;

: implementation

: uses
:   ComObj, Dialogs, Variants;

: { TExcelProc }

: constructor TExcelProc.Create;
: begin
:   inherited Create;
:   try
:     ExcelApp := GetActiveOleObject('Excel.Application');
:   except
:     try
:       // If no instance of Word is running, try to Create a new Excel Object
:       ExcelApp := CreateOleObject('Excel.Application');
:     except
:       ShowMessage('Cannot start Excel/Excel not installed ?');
:       Exit;
:     end;
:   end;
: end;

: destructor TExcelProc.Destroy;
: begin
:   if not VarIsEmpty(ExcelApp) then
:   begin
:     ExcelApp.DisplayAlerts := False; // Discard unsaved files...
:     ExcelApp.Quit;
:     ExcelApp := Unassigned;
:   end;
:   inherited Destroy;
: end;

: initialization

: finalization

: end.
:
: 엑셀객체를 다루는 루틴을 폼에서 분리할려고 위와 같이 유닛을 생성했습니다.
: 처음에는 클래스의 생성자에 있던 구문은 유닛의  initialization 색션에 Destroy절에 있는 구문은 finalization 섹션에
: 넣어서 유닛만 폼의 uses절에 넣어서 실행을 하니 다운이 되어 버려서 위처럼 클래스를 하나 만들고 그 속에
: 집어 넣어니까 에러없이 작동을 합니다.
:
: 짧은 생각에는  initialization 에 변수를 할당하는 작업을 해도 될것 같은데 왜 에러가 나는지를
: 모르겠네요.  initialization 섹션에 코드를 넣은것과 create절에 코드를 넣는게 어떤 차이가 나는건지요?

+ -

관련 글 리스트
14563 Unit에서 OLE 객체를 생성할 때 박태성 1963 2013/01/15
14564     Re:Unit에서 OLE 객체를 생성할 때 gomsun2 2134 2013/01/16
14565         답변 감사드립니다. 박태성 1974 2013/01/16
14577             Re:답변 감사드립니다. gomsun2 1948 2013/01/17
14580                 답변 감사드립니다. 박태성 1854 2013/01/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.