액티브X 컨트롤의 사용과 제작
|
|
- 민경 강전
- 8 years ago
- Views:
Transcription
1 액티브 X 컨트롤, 액티브폼의제작 (Creating ActiveX Controls, ActiveForms) 델파이의 VCL 컴포넌트와액티브 X 컴포넌트는사실의미상으로많은부분이통하지만, 실제구현방법은많은차이가있기때문에 VCL 컨트롤을액티브 X 컨트롤로전환개발하려면사실많은단순작업을해주어야한다. 델파이 4 에서는이런작업을단순화시키는레이어를제공하는데이것이바로액티브 X 컨트롤위저드이다. 마찬가지로컴포넌트가추가된폼을하나의액티브 X 컨트롤처럼사용할수있는데, 이를액티브폼이라고하며액티브폼역시델파이 4 에서제공되는액티브폼위저드를이용해서쉽게작성할수있다. 액티브 X 컨트롤에대한내용의경우필자가가장많이참고한자료는 97 년도에볼랜드가개최한컨퍼런스에서 Conrad Herrman 이발표한컨퍼런스자료이다. Conrad Herrman 은 inprise 에서운영하는뉴스그룹에서도액티브 X 분야에서가장활발한활동을하고있는사람으로 inprise 와관련이없는데에도불구하고, 어려운질문에도즉각즉각답변을해주는사람이다. 아마도이글을읽을기회는없겠지만이자리를빌어감사의뜻을전하고싶다. 액티브 X 컨트롤위저드의이용 사용하는것은간단하지만, 위저드가내부적으로동작하는방법을간단하게설명하겠다. 먼저자동화인터페이스와이벤트인터페이스를지정하고, 구현할객체의클래스 ID 를생성한다. 그리고나서이객체를액티브 X 서버라이브러리에서사용할수있도록포장해준다. 이과정에서 VCL 컴포넌트의프로퍼티, 메소드, 이벤트를 OLE 스타일로변환시켜주는짧은어댑터루틴이필요하다. 실제로액티브 X 컨트롤위저드를사용해보자. 1. TWinControl 에기초한정상적인델파이컨트롤을빌드하고, 이를컨트롤팔레트에인스톨한다. 여기에서는델파이 TEdit 를이용하겠다. 이컴포넌트를액티브 X 컨트롤로만들면다른개발도구에서도유용하게사용할수있을것이다. 2. File New 메뉴를선택하고, 여기에서 ActiveX 페이지를선택하면액티브 X 제작과관련한여러가지마법사를볼수있는데, ActiveX Control 아이템을선택하면다음그림과같은대화상자가나타난다. 3. VCL Class Name 항목에는액티브 X 컨트롤로전환시킬 VCL 클래스를선택하면자동으로아래의 3 항목이채워진다. 이를그대로사용해도좋고, 다른이름으로바꿀수도있다. 참고로각각의항목은새로운액티브 X 컨트롤클래스의이름, 컨트롤을구현하는
2 Unit 파일, 액티브 X 서버라이브러리프로젝트파일을지정한다. 4. 적절한쓰레딩모델을선택한다. 보통은 Apartment 모델을사용한다. 앞장에서여기에대해서는자세히설명하였으므로, 이를참조하기바란다. 5. 대화상자하단의옵션체크박스는나중에설명하기로하고, 여기서 OK 를누르면위저드는액티브 X 컨트롤을구현하는코드와이를담을액티브 X 서버라이브러리프로젝트파일을자동으로생성하거나수정한다. 6. 프로젝트를빌드하면액티브 X 컨트롤이만들어진다. 7. 마지막으로만들어진컨트롤을시스템에등록해야하는데, Run Register ActiveX Sever 메뉴를선택하면등록이완료된다. 액티브 X 컨트롤위저드대화상자 TEdit 의경우액티브 X 컨트롤위저드에의해 EditXControl1.dpr 파일과액티브 X 서버를 구현하는 EditXImpl1.pas 파일, 프로젝트에 import 되는타입라이브러리파일 (.tlb) 과타입 라이브러리의파스칼버전이생성된다. 액티브 X 프로젝트파일 위저드에의해생성되는프로젝트파일의내용을살펴보자. 소스코드는다음과같다. 이 해를돕기위해필자가주석을달았다. library EditXControl1; uses //EditXControl1 이라는 DLL 파일을생성하는프로젝트임을나타냄
3 ComServ, EditXControl1_TLB in 'EditXControl1_TLB.pas', EditImpl1 in 'EditImpl1.pas' {EditX: CoClass}; //EditX 라는액티브 X 클래스를구현하는 unit 가 EditXImpl1.pas 파일에구현되어있음을나타내는줄 {$E ocx} // 링커에게 output 파일의확장자가.ocx 임을알려준다. exports DllGetClassObject, DllCanUnloadNow, DllRegisterServer, DllUnregisterServer; // 표준액티브 X 서버함수를 export. 이함수들은 ComServ unit 에구현되어있으므로, 따로구현할필요가없다. {$R *.TLB} // 링커에게타입라이브러리파일을 DLL 의리소스로포함할것을요구한다. {$R *.RES} // 링커에게프로젝트의리소스를포함할것을요구한다. 여기에는툴바비트맵과 버전정보리소스가포함된다. end. 액티브 X 컨트롤러객체의선언 실제로액티브 X 컨트롤의구현부분은 EditXImpl1.pas 파일에담겨져있다. 이파일에는액티브 X 컨트롤의액티브 X 컨트롤러객체가구현되어있으며, 액티브 X 컨트롤러객체에의해자동화인터페이스가정의되고, OLE 자동화스타일의프로퍼티, 메소드, 이벤트가구현된다. 주요소스를살펴보자. unit EditImpl1; interface uses Windows, ActiveX, Classes, Controls, Graphics, Menus, Forms, StdCtrls, ComServ, StdVCL, AXCtrls, EditXControl1_TLB;
4 EditXControl1_TLB.pas unit 은파스칼버전의타입라이브러리로여기에인터페이스가정 의되어있다. 위저드에의해생성된다. type TEditX = class(tactivexcontrol, IEditX) // 타입라이브러리에정의된 IEditX 인터페이스를구현하는컨트롤러객체인 TEditX 클래스를 TActiveXControl 클래스에기초하여선언 private { Private declarations } FDelphiControl: TEdit; //VCL 컨트롤을가리키는필드. InitializeControl 메소드에의해초기화된다. 아래에열거되는멤버들을이용하여프로퍼티, 메소드등에접근한다. FEvents: IEditXEvents; // 컨테이너의이벤트싱커에대한포인터이다. 일종의 dispinterface 로 IDispatch 포인터를저장한다. 이값은컨트롤이컨테이너에삽입되거나제거될때 EventSinkChanged 메소드가호출되면설정된다. 이값이 nil 일수도있는데, 이는컨테이너애플리케이션이이벤트에대한처리를하지않는경우이다. procedure ChangeEvent(Sender: TObject); procedure ClickEvent(Sender: TObject); procedure DblClickEvent(Sender: TObject); procedure KeyPressEvent(Sender: TObject; var Key: Char); 이벤트핸들러프록시에대한선언부분이다. protected { Protected declarations } procedure InitializeControl; override; procedure EventSinkChanged(const EventSink: IUnknown); override; procedure DefinePropertyPages(DefinePropertyPage: TDefinePropertyPage); override; ( 중략 ) 앞의세가지메소드는 TActiveXControl 에선언된가상메소드를오버라이드한것으로, 다 음에자세히설명한다.
5 function Get_AutoSelect: WordBool; safecall; function Get_AutoSize: WordBool; safecall; function Get_BevelInner: TxBevelCut; safecall; ( 중략 ) // 이들은프로퍼티의 getter 메소드로, 이들은 IEditX 인터페이스에정의되어있다. 이들은모두 safecall 호출규칙 (calling convention) 을사용하는데, 이것은오브젝트파스칼에서자동화메소드에호환되는듀얼인터페이스를선언할때사용하는것으로, 예외가발생하면 OLE 호출규칙에의거하여 OLE 에러값을반환한다. procedure Set_AutoSelect(Value: WordBool); safecall; procedure Set_AutoSize(Value: WordBool); safecall; procedure Set_BevelInner(Value: TxBevelCut); safecall; ( 중략 ) // 이들은프로퍼티의 setter 메소드이다. 이들역시 IEditX 인터페이스에정의되어있다. // 참고로 TEditX 컴포넌트에는액티브 X 컨트롤로전환될때사용될수있는 public 메소드가없 는관계로, 메소드에대한선언이빠져있다. implementation uses ComObj; { TEditX } procedure TEditX.InitializeControl; FDelphiControl := Control as TEdit; //Control 은 TActiveXControl 에선언되어있는프로퍼티로, TWinControl 에서상속받은 VCL 컨트롤을지정한다. FDelphiControl 필드에 TEdit VCL 객체의포인터가저장된다.
6 FDelphiControl.OnChange := ChangeEvent; FDelphiControl.OnClick := ClickEvent; ( 중략 ) // 컨트롤의 VCL 이벤트를컨트롤러객체의이벤트핸들러프록시메소드에매핑하는코드이다. 이렇게함으로써 VCL 컨트롤이이벤트를발생시키면, 컨트롤러객체가이벤트를받게된다. InitializeControl 메소드는컨트롤이생성되고, 컨테이너에삽입되기전에호출되는메소드 로, COM 컨트롤러객체와 VCL 객체간의커넥션을만든다. 보다자세하게설명하면, 컨트 롤러객체가 VCL 객체의포인터를얻은다음, 이벤트프록시를 VCL 객체에연결해준다. procedure TEditX.EventSinkChanged(const EventSink: IUnknown); FEvents := EventSink as IEditXEvents; 컨테이너가제공하는이벤트싱크를저장한다. FEvents 필드는컨테이너객체에이벤트를 발생시킬때사용된다. IEditXEvents 는컨트롤의이벤트 dispinterface 로타입라이브러 리에디폴트소스인터페이스로선언되어있다. procedure TEditX.DefinePropertyPages(DefinePropertyPage: TDefinePropertyPage); 이메소드는개발자가나중에프로퍼티페이지를추가할때사용한다. 프로퍼티페이지를 추가하는방법에대해서는나중에설명한다. 프로퍼티의 Get, Set 메소드의구현방법 VCL 컨트롤의프로퍼티는위저드에의해생성되는컨트롤러객체의 Get, Set 메소드에의 해접근할수있다. 이들이실제로어떻게구현되어있는지살펴보자. 가장전형적인 Get, Set 메소드는다음과같다. function TEditX.Get_AutoSelect: WordBool;
7 Result := FDelphiControl.AutoSelect; procedure TEditX.Set_AutoSelect(Value: WordBool); FDelphiControl.AutoSelect := Value; 대부분의경우는이와같이간단하게구현이되어있지만, 프로퍼티의데이터형이호환되지않을때에는약간의조작이필요하다. 대부분의경우위저드가자동으로구현해주지만, 지원하지않는데이터형을사용하는 public 프로퍼티는사용할수없게될수도있으며, 이를구현하기위해서약간의코딩이필요할수도있다. 가장복잡한경우가폰트, 그림, string list 등의경우이다. 예를들어폰트의경우독립적인 dispatch 인터페이스를가지는독립적인객체이기때문에, 적절한접근방법이있어야한다. 이를해결하려면 Get_Font 메소드는폰트의프로퍼티를 OLE 프로퍼티로노출 (expose) 시킬수있는 OLE 객체를생성하고, 이를반환해야하며, 반대로 Set_Font 메소드는 OLE 폰트객체의값을 VCL 프로퍼티에대입할수있어야한다. 다행히이를위해, DAX 라이브러리에서는 TFont, TPicture 클래스를위한함수를제공한다. 위저드에서자동으로생성한 Get_Font, Set_Font 메소드는다음과같다. function TEditX.Get_Font: IFontDisp; GetOleFont(FDelphiControl.Font, Result); procedure TEditX._Set_Font(const Value: IFontDisp); SetOleFont(FDelphiControl.Font, Value); 위저드에서일부의프로퍼티는생성하지않는데, 이들의예를들면 Height, Left 등과같이 Extended 프로퍼티를사용해야하는경우나, ParentFont, Hints 등과같이액티브 X 컨테이너가지원할수없는경우, PopUpMenu 와같이 OLE 프로퍼티데이터형이도저히지원할수없는경우등이있다.
8 이벤트의처리 기본적으로 InitializeObject 메소드에의해 VCL 컨트롤과이벤트핸들러가연결된다는것 은위에서설명했다. 그럼실제이벤트를처리하는부분을살펴보자. procedure TEditX.ChangeEvent(Sender: TObject); if FEvents <> nil then FEvents.OnChange; 이를분석하면, FEvents dispatch 인터페이스가설치되어있으면 ( 즉, IDispatch 포인터가할당되어있으면 ) 단순히이벤트를컨테이너의이벤트싱크에넘겨주는것으로되어있다. FEvents 는위에서설명한 EventSinkChanged 메소드에의해설정된다. KeyPressEvent 는 OnClick, OnChange 이벤트에비해다소복잡하게구현되어있는데, 이는 OLE 이벤트에서요구하는파라미터가델파이이벤트의파라미터와다르기때문에이를변환하는코드가생성되기때문이다. 실제코드를살펴보자. procedure TEditX.KeyPressEvent(Sender: TObject; var Key: Char); var TempKey: Smallint; TempKey := Smallint(Key); if FEvents <> nil then FEvents.OnKeyPress(TempKey); Key := Char(TempKey); 이경우이벤트핸들러프록시는이벤트를컨테이너에발생시키기전에파라미터를조작하게된다. OnKeyPress 이벤트는 SmallInt 에대한포인터를컨테이너에넘기지만, VCL 컨트롤은 Char 에대한포인터를이벤트핸들러에게넘기므로이를 SmallInt 와 Char 로타입캐스팅하는부분이필요한것이다. 참고로, TDateTimePicker 와같이다소복잡한컨트롤의경우에는더복잡한처리방법을가지는경우도있다. 이때에는 VCL 컨트롤에서사용하는 TDateTime, String, Boolean 데이터 type 을 OLE 이벤트의 WideString, WordBool 등으로타입캐스팅할필요가있다. 이런부분을모두위저드가자동으로코딩해준다.
9 클래스팩토리를통한인스턴스의생성 마지막으로라이브러리가메모리상에로드되었을때, 클래스팩토리를생성하는부분을살 펴보자. initialization TActiveXControlFactory.Create(ComServer, TEditX, TEdit, Class_EditX, 1, '', 0, tmapartment); ComServer 는라이브러리를나타내는전역변수로라이브러리에의해생성된클래스팩토리의리스트를포함하고있다. 2, 3 번째파라미터는각각액티브 X 를구현하는클래스, VCL 컨트롤클래스이며, Class_EditX 는 EditXControl1_TLB.pas unit 에선언되어있는객체의 ClassID 이다. 5, 6, 7 번째파라미터는각각 ToolBarBitmapID, LicenseString, MiscControl flag 등을나타내며, 마지막파라미터에는쓰레딩모델을지정한다. 타입라이브러리 일단액티브 X 라이브러리를컴파일하면타입라이브러리는 DLL 에리소스로복사된다. 액티브 X 컨트롤위저드는처음액티브 X 컨트롤을델파이 VCL 에서생성할때타입라이브러리를만들며이를.TLB 파일로저장한다. 이때위저드는프로퍼티와파라미터를 OLE 에호환되는타입으로전환한다. 컨트롤에나열형프로퍼티나파라미터가포함되어있으면이에대한타입선언부를만들어주며, 데이터타입이 TFont, TPicture, TStrings 일경우에는프로퍼티, 파라미터를 IFont, IPicture, IStrings 로대입하고, 이들에대한어댑터 (adapter) 코드를생성해준다. 만약 VCL 컨트롤에 COM 객체타입이될수없는프로퍼티나파라미터가있을경우에는위저드는이들을생략해버린다. 사용자정의객체스트리밍 DAX 객체에대한기본적인스트리밍 (streaming) 은 VCL 의포맷을따르게된다. 그러나, 개발자가기본적인정보외에추가적인정보를지속적스트림 (persistence stream) 에저장하려한다면 LoadFromStream, SaveToStream 메소드를오버라이딩하면된다. 이때컨트롤의프로퍼티를제대로읽고, 저장하려면 inherited 메소드를호출해야한다. 이들메소드는다음과같이정의되어있다. procedure LoadFromStream(const Stream: IStream);
10 procedure SaveToStream(const Stream: IStream) 델파이의표준스트리밍클래스는 TStream 이다. 이클래스에는 Read, Write, Seek 메소드가있으며, TPersistent 객체에서 TStream 을이용해스트리밍을하게된다. 대부분의델파이객체가 TPersistent 객체에서상속받으므로, 객체의내용을저장할때 TStream 을사용한다. OLE 에서는스트리밍객체는 IStream 이라는인터페이스를제공하며, 여기에역시 Read, Write, Seek 메소드가정의되어있다. 델파이 4 에서는 TOleStream 이라는클래스를제공하는데이를통해 TStream 을 IStream 으로노출 (expose) 시킬수있다. TActiveXControl 이 SaveToStream 메소드를이용해서객체의상태를스트림에저장할때파라미터로 IStream 을가지는것이다. 만약개발자가추가데이터를스트림에저장하고자한다면스트림어댑터를이용해 TPersistent 객체가그내용을 IStream 에저장하게된다. 다음코드는 TOleStream 을이용해추가적인정보를문자열리스트 (string list) 에담아서저장하는예이다. 또한, InitializeControl 메소드에서 ExtraInfo 문자열리스트객체를생성하고, destructor 인 Destroy 메소드를오버라이드하여사용한 ExtraInfo 문자열객체를해제재주어야한다.... ( 전략 ) protected procedure InitializeControl; override; procedure EventSinkChanged(const EventSink: IUnknown); override; procedure LoadFromStream(const Stream: IStream); override; // 추가 procedure SaveToStream(const Stream: IStream); override; // 추가... ( 중략 ) var ExtraInfo: TStringList; procedure TEditX.InitializeControl;... ExtraInfo := TStringList.Create; destructor TEditX.Destroy;
11 ExtraInfo.Free; procedure TEditX.SaveToStream(const Stream: IStream); var TempStream: TStream; inherited; TempStream := TOleStream.Create(Stream); try ExtraInfo.SaveToStream(TempStream); finally TempStream.Free; procedure TEditX.LoadFromStream(const Stream: IStream); var TempStream: TStream; inherited; TempStream := TOleStream.Create(Stream); try ExtraInfo.LoadFromStream(TempStream); finally TempStream.Free; 컨트롤에 verb 추가하기 Verb 는사용자가발생시키는액션을말한다. 예를들어, 메뉴아이템에서 copy, paste, run 등을선택하면객체가특정한동작을한다면이들이좋은 verb 의예가된다. 그럼이러한 verb 를우리가제작하는컨트롤에추가시키는방법을배워보자. Verb 를컨트롤에추가할때필요한것은 verb 를등록하는코드와 verb 를실행하는코드
12 이다. Verb 를등록하는것은객체의클래스팩토리를이용해서라이브러리가인스톨될때 verb information 을시스템레지스트리에복사하는것을말한다. 이런작업은팩토리객체의 AddVerb 메소드를이용하면된다. 다음의코드를살펴보자. const VERB_TEXT = 100; initialization with TActiveXControlFactory.Create(ComServer, TEditX, TEdit, Class_EditX, 1, '', 0, tmapartment) do AddVerb(VERB_CLICK, '&Text ); end. 이코드에의해서 Text 라는 verb 가컨트롤에추가되며사용자가컨테이너의메뉴아이템에서 Text 를선택하면에디트컨트롤의 Text 프로퍼티를변경하도록설정하도록하자. 컨테이너는객체에 verb 가있을때이를나타낼책임을가지고있으며, 사용자가이를선택했을때액티브 X 컨트롤을호출하여야한다. DAX 에서는실제로 verb 를실행할때 PerformVerb 메소드를호출한다. 앞의 Text verb 에대응하기위한 PerformVerb 메소드는다음과같은식으로작성하면된다. 먼저 interface 의 protected 섹션에메소드를선언하고, 이를구현한다. InputBox 함수는 Dialogs.pas 유닛에선언되어있으므로 uses 절에 Dialogs.pas 유닛을추가할필요가있다. procedure PerformVerb(Verb: Integer); override; procedure TEditX.PerformVerb(Verb: Integer); var InputText: string; case Verb of VERB_TEXT: InputText := InputBox(' 텍스트 ', ' 문자열을입력하세요!', '');
13 FDelphiControl.Text := InputText; else Inherited PerformVerb(Verb); 프로퍼티페이지의제작 프로퍼티페이지는사용자에게컨트롤의프로퍼티를편집할수있게하기위해제공되는폼이다. 프로퍼티페이지를반드시제공할필요는없는데, 이때에는각개발툴의프로퍼티인스펙터에서프로퍼티를변경하게된다. 그러나, 프로퍼티를제공하면사용자가보다쉽고직관적인인터페이스를가지고프로퍼티를편집할수있게된다. 프로퍼티페이지역시 OLE 객체로액티브 X 라이브러리에포장되고시스템레지스트리에등록되어야한다. 그러나, 이를사용하는컨트롤과같은라이브러리에포함되어야하는것은아니기때문에다른컨트롤에서등록된같은프로퍼티페이지를사용하는것도가능하다. 델파이에서는폰트와컬러, 그림과문자열에대한 4 가지의기본적인프로퍼티페이지를제공한다. 이들의클래스 ID 는각각 Class_DColorPropPage, Class_DFontPropPage, Class_DPicturePropPage, Class_DStringPropPage 이다. 프로퍼티페이지를추가하려면객체저장소나 File New.. 메뉴의액티브 X 페이지에서액티브 X 프로퍼티페이지위저드를실행하면된다. 위저드를실행하면폼하나와 unit 파일하나가자동으로생성되는데, 다음그림은 TEdit 의 Enabled 프로퍼티를체크하는체크박스를프로퍼티페이지에올려놓은그림이며, 생성되는코드는다음과같다. unit EditXProp;... ( 중략 ) type TPropertyPage1 = class(tpropertypage) CheckBox1: TCheckBox;
14 private protected public procedure UpdatePropertyPage; override; procedure UpdateObject; override; 여기에서프로퍼티페이지클래스는 TPropertyPage 클래스에서상속받음을알수있으며, 폼에삽입한 CheckBox 컨트롤이있다. TPropertyPage 클래스는 TCustomForm 클래스에서상속받은것으로 OleObject 프로퍼티를이용해프로퍼티페이지와객체의편집을연결하며, UpdatePropertyPage, UpdateObject 메소드를제공하는데, 이를오버라이드하여실제로 OLE 객체를편집하게된다. 이들메소드를다음과같이구현하였다. procedure TPropertyPage1.UpdatePropertyPage; CheckBox1.Checked := OleObject.Enabled; // 이부분을실제로추가해주어야함 procedure TPropertyPage1.UpdateObject; OleObject.Enabled := CheckBox1.Checked; // 이부분을실제로추가해주어야함 UpdatePropertyPage 메소드는 OLE 객체의프로퍼티를프로퍼티페이지에반영하는역할 을하며, UpdateObject 메소드는프로퍼티페이지의내용을 OLE 객체에반영한다. initialization TActiveXPropertyPageFactory.Create(ComServer, TPropertyPage1, Class_PropertyPage1); end. 이코드는프로퍼티를 COM 객체로등록하는것으로, TActiveXPropertyPageFactory 의메소드를사용하게된다. ComServer 는액티브 X 라이브러리를대표하는전역변수이며, TpropertyPage1 은폼의클래스, Class_PropertyPage1 은프로퍼티페이지객체의클래스 ID 이다. 이렇게제작한프로퍼티를실제로액티브 X 컨트롤에적용하려면 DefinePropertyPages 메소드를변경하면되는데, 처음만들어진코드에는이부분이주석으로채워져있다. 이를다음과같은코드로바꾸어주면된다.
15 procedure TdateTimePickerX.DefinePropertyPages(DefinePropertyPage: TdefinePropertyPage); DefinePropertyPage(Class_PropertyPage1); // 추가된부분 여기에여러개의프로퍼티페이지를 DefineProperyPage 메소드를이용해서컨트롤이여 러개의등록된프로퍼티페이지를이용하도록할수있다. Ambient 프로퍼티의이용 Ambient 프로퍼티는컨트롤의컨테이너에의해제공되는프로퍼티를말한다. 일단컨트롤이컨테이너에삽입되면, 컨테이너의 ambient 프로퍼티의정보를물어보게된다. 그러므로, 컨테이너는노출시키려는 ambient 프로퍼티를정의하고있어야한다. 액티브 X 는 BackColor, DisplayName 등의표준 ambient 프로퍼티를정의하고있다. 물론이들을모두컨테이너가노출할필요는없지만, 마이크로소프트는이들을사용하기위해각각에대한 dispid 를정의하고있다. 그러므로, 액티브 X 에서 ambient 프로퍼티에접근할때에는사이트의 IDispatch 인터페이스를사용한다. 델파이에서는 IAmbientDispatch 인터페이스를제공하는데, 이인터페이스를이용하여표준인터페이스에접근이가능하다. IAmbientDispatch 인터페이스는어디까지나 dispinterface 이므로단지 IDispatch 의포인터일뿐이며, 다른 dispinterface 로형변환이가능하다. IAmbientDispatch 인터페이스의선언부는다음과같다. IAmbientDispatch = dispinterface ['{ C }'] property BackColor: Integer dispid DISPID_AMBIENT_BACKCOLOR; property DisplayName: WideString dispid DISPID_AMBIENT_DISPLAYNAME; property Font: IFontDisp dispid DISPID_AMBIENT_FONT; property ForeColor: Integer dispid DISPID_AMBIENT_FORECOLOR; property LocaleID: Integer dispid DISPID_AMBIENT_LOCALEID; property MessageReflect: WordBool dispid DISPID_AMBIENT_MESSAGEREFLECT; property ScaleUnits: WideString dispid DISPID_AMBIENT_SCALEUNITS; property TextAlign: Smallint dispid DISPID_AMBIENT_TEXTALIGN; property UserMode: WordBool dispid DISPID_AMBIENT_USERMODE; property UIDead: WordBool dispid DISPID_AMBIENT_UIDEAD; property ShowGrabHandles: WordBool dispid DISPID_AMBIENT_SHOWGRABHANDLES;
16 property ShowHatching: WordBool dispid DISPID_AMBIENT_SHOWHATCHING; property DisplayAsDefault: WordBool dispid DISPID_AMBIENT_DISPLAYASDEFAULT; property SupportsMnemonics: WordBool dispid DISPID_AMBIENT_SUPPORTSMNEMONICS; property AutoClip: WordBool dispid DISPID_AMBIENT_AUTOCLIP; 다음의코드는 TEditX 컨트롤을클릭할때컨테이너에서의컨트롤의이름을메시지박스로 나타내도록한것이다. 이를위해 DisplayName ambient 프로퍼티를이용하였다. procedure TEditX.ClickEvent(Sender: TObject); var Site: IOleClientSite; Ambients: IDispatch; GetClientSite(Site); if Site <> nil then Site.QueryInterface(IDispatch, Ambients); if Ambients <> nil then ShowMessage(IAmbientDispatch(Ambients).DisplayName); if FEvents <> nil then FEvents.OnClick; 이렇게하면, 앞으로는에디트박스를클릭할때마다폼에서의에디트박스의 Name 프로퍼티의내용이메시지박스로뜰것이다. Ambient 프로퍼티를가장유용하게사용되는경우는컨테이너의색상변화에따라컨트롤의색상변화를유도하고싶다거나, 글꼴변화에따른컨트롤의변화와같이사용자인터페이스측면에서반드시사용해야할경우들이있다. 이럴때에는 ambient 프로퍼티의이용이유일한해결책이될수있다. 이를위해서컨테이너가 ambient 프로퍼티의값을변경했을때, 이를알아챌수있어야하는데이때에는컨테이너객체의 OnAmbientPropertyChange 메소드를호출하게된다. 그러므로델파이에서이를이용하려면 OnAmbientPropertyChange 메소드를오버라이드하고, IOleControl 인터페이스를다시구현하면된다.
17 사용자정의레지스트리엔트리의추가 액티브 X 컨트롤을작성한뒤에는레지스트리에컨트롤에대한정보를추가하고싶을경우가있다. 보통액티브 X 컨트롤이등록될때이런작업이병행된다면좋을텐데, 이를해결하는방법이없는지궁금하지않은가? 이를위해서는델파이 COM 팩토리의 UpdateRegistry 메소드를이용하면된다. 이메소드는라이브러리가등록되거나해제될때호출되기때문에여기에다가레지스트리에각종정보를추가하는코드를삽입하면된다. 그러므로, UpdateRegistry 메소드를오버라이드해야하므로 TActiveXControlFactory 클래스를상속받은새로운클래스팩토리클래스를정의하고, 이클래스팩토리를이용하여액티브 X 라이브러리를등록하도록수정해야한다. 다음의클래스는클래스팩토리의 constructor 에레지스트리에등록할문자열을미리파라미터로받아서이를레지스트리에등록하도록수정한클래스팩토리클래스를구현한것이다. type TRegistryFactory = class(tactivexcontrolfactory) public constructor Create(ComServer: TComServerObject; ActiveXControlClass: TActiveXControlClass; WinControlClass: TWinControlClass; const ClassID: TGUID; ToolboxBitmapID: Integer; const LicStr: string; MiscStatus: Integer; ThreadingModel: TThreadingModel = tmsingle; SpecialKeyValue: string); override; procedure UpdateRegistry(Register: Boolean); override; protected FSpecialKeyValue: string; constructor TRegistryFactory.Create(ComServer: TComServerObject; ActiveXControlClass: TActiveXControlClass; WinControlClass: TWinControlClass; const ClassID: TGUID; ToolboxBitmapID: Integer; const LicStr: string; MiscStatus: Integer; ThreadingModel: TThreadingModel = tmsingle; SpecialKeyValue: string); var TypeAttr: PTypeAttr; FSpecialKeyValue := SpecialKeyValue; inherited Create(ComServer, ActiveXControlClass, WinControlClass, ClassID, ToolboxBitmapID, LicStr, MiscStatus, ThreadingModel);
18 procedure TRegistryFactory.UpdateRegistry(Register: Boolean); var ClassKey: string; ClassKey := 'CLSID\' + GUIDToString(ClassID); if Register then inherited UpdateRegistry(Register); CreateRegKey(ClassKey + '\SpecialKey', '', FSpecialKeyValue); end else DeleteRegKey(ClassKey + '\SpecialKey'); inherited UpdateRegistry(Register); 이클래스팩토리를이용하기위해서는액티브 X 라이브러리의 initialization 섹션을다음과 같이수정하면된다. 다음의경우추가적인레지스트리키값을 Sample 로설정하는경우 이다. initialization TRegistryFactory.Create(ComServer, TEditX, TEdit, Class_EditX, 1, '', 0, tmapartment, Sample ); end. 액티브 X 컨트롤의등록과이용 그러면, 이렇게작성한액티브 X 컨트롤을등록하고이용하는방법에대해서알아보자. 여기에서설명하는내용은인터넷에서쉽게구할수있는여러가지다른액티브 X 컨트롤에대해서도공통적으로적용된다고할수있다. 델파이에서액티브 X 컨트롤을이용하려면먼저.ocx 파일을레지스트리에등록시켜야한다. 델파이를이용해서작성한경우에는컴파일하고, 간단히 Run Register ActiveX Server 메뉴를이용하여등록이가능하지만, 인터넷에서구한경우에는 RegSvr.EXE 와같은등록프로그램을이용하거나.REG 파일을작성하여등록해야한다.
19 EditX 컨트롤은간단히컴파일하고 Run Register ActiveX Server 메뉴를선택하여레지스트리에등록할수있다. 이렇게등록한액티브 X 컨트롤을이용하려면델파이의컴포넌트팔레트에추가해야한다. 이를위해서는 Component Import ActiveX Control 메뉴를선택하거나, Component Install Packages 메뉴를선택하여패키지를먼저선택한뒤에 Edit 버튼을클릭하고액티브 X 컨트롤을추가할수있다. 이대화상자에서팔레트페이지의이름과생성될 _TLB.pas 파일의위치를지정할수있다. Search Path 에디트박스에는액티브 X 서버파일의위치를검색할디폴트패스를나열하게된다. 추가가가능하며, 여기서지정한패스가아닌곳에위치한액티브 X 서버는이대화상자에나타나지않는다. 이런경우에는 Add 버튼을클릭하여액티브 X 서버파일의위치를지정할수있다. Install.. 버튼을클릭하면설치할패키지를지정하라는대화상자가나타날것이다. 여기에서적절한패키지파일을선택하거나, 새로운패키지를지정하여설치할수있다. 이렇게하면, 다음과같은패키지관리자가나타나면서설치가될것이다.
20 변경사항이있는경우에는 Compile 버튼을누르면컴포넌트팔레트에변경된내용이즉시반영된다. 여기에서더추가하거나제거하고싶은컴포넌트나액티브 X 컨트롤이있으면 Add 버튼을클릭하여추가나제거가가능하다. 이제새로운어플리케이션을시작하고, EditX 컨트롤을사용해보자. 컴포넌트팔레트의 ActiveX 탭에서 EditX 컨트롤을폼에올려놓도록하자. 아마도 TEdit 컴포넌트를올려놓는것과거의같다는것을느낄수있다. 사용법역시동일하다. TEditX 컨트롤위에서오른쪽버튼을클릭하여팝업메뉴를띄워보자. 아마도기본적인 Properties 메뉴와추가한 Verb 메뉴인 Text 메뉴가 Verb 메뉴로다음과같이나타날것이다. 여기서 Properties 메뉴를선택하여우리가추가한프로퍼티페이지가다음과같이나타날 것이다.
21 여기서체크박스의내용을이용하여 Enabled 프로퍼티를조절할수있다. 그러면, 이번에는 Text verb 를실행해보도록하자. 그러면, 우리가코딩한대로다음과같은입력박스가나타날것이다. 여기에서아무값이나입력하면에디트컨트롤의내용인입력한값으로변경될것이다. 나머지사용방법은 TEdit 컴포넌트와거의유사하게사용할수있다. 다른액티브 X 컨트 롤도이와비슷한방법으로쉽게사용할수있다. 액티브폼 (ActiveForm) 의제작 액티브폼은 VCL 폼에기반을둔액티브 X 컨트롤이라고생각하면된다. 그러니까, 일종의액티브 X 컨트롤인셈이다. 그렇지만, 델파이 3 에서발표된액티브폼은인트라넷개발환경을지원하기위해서여러모로활용되면서나름대로독자적인입지를굳힌듯하다. 비록인터넷에서범용액티브 X 컨트롤로사용하기에는다소무리가따르지만일정정도의네트워크속도가보장되는인트라넷환경에서는델파이에서일반적으로개발하는폼에기반한개발방법을그대로적용해서하나의컨트롤로만들어낼수있다는것은나름대로의매력이있다고생각할수있다. 액티브폼은델파이에서제공하는액티브폼위저드를이용하여작성한다. 먼저 File New
22 메뉴의 ActiveX 탭에서 ActiveX Library 아이콘을더블클릭한다. 액티브폼역시액티브 X 컨트롤이기때문에.ocx 파일형태의 in-process 액티브 X 라이브러리로등록되어사용된다. 이렇게하면, 델파이에서비어있는프로젝트가하나생성될것이다. 그다음에는폼을생성할차례이다. 마찬가지로 File New 메뉴의 ActiveX 탭에서이번에는 ActiveForm 아이콘을더블클릭하면액티브 X 컨트롤위저드를생성할때와거의동일한대화상자가나타날것이다. 여기에서적당한이름과모델들을선택하고 OK 버튼을클릭하면, 흔히보는비어있는폼이하나만들어질것이다. 여기까지별로한것이없어보이지만, 델파이가내부적으로많은코딩을해놓은상태이다. 개발자가할일은이폼을이용해서마음대로사용자인터페이스를디자인하고필요한코딩을해주면된다. 개발하는방법은일반적인폼을이용해서개발하는것과완전히동일하다. 컴포넌트를올려놓고, 거기에대한이벤트핸들러를작성한다. 단지다른점이있다면, 컴파일을하고나서이폼을실제로실행할수있는것은 HTML 페이지위에서만할수있다는것이다. 다음에설명하는웹배포방법을이용해서액티브폼을 HTML 파일로변경하고, 이파일을열어보면액티브폼이제대로실행되는지알아볼수있다. 그러면만들어진빈폼에다음과같이버튼을하나올려놓고 Caption 프로퍼티를 OK! 로설정하고, OnClick 이벤트핸들러를다음과같이작성한다. procedure TActiveFormX.Button1Click(Sender: TObject); ShowMessage(' 연습입니다!'); 그리고, 컴파일을하면프로젝트파일에대한.ocx 파일이생성될것이다. 웹을이용해배포할수있도록옵션을지정하고, 실제로배포를하면완료된다. 앞으로할일은 웹배포 (Web Deployment) 델파이로제작한액티브 X 컨트롤을웹사이트에배포할때에는다음과같은몇가지를지정해주어야한다. 웹배포의옵션은 Project Web Deployment Options 메뉴를선택하면설정할수있다. 이메뉴를선택하면웹배포옵션을위한대화상자가나타나는데, 여기에서가장중요한부분은다음에설명하는 Target dir, Target URL, HTML dir 에대한내용이다.
23 1. Target dir: 델파이가복사할코드베이스파일이위치할디렉토리를지정한다. 2. Target URL: 바이너리코드베이스가존재하는서버를지정한다. 이는 URL 의형태인데예를들어 등과같은형태를가진다. 3. HTML dir: 델파이가복사할 HTML 파일이위치할디렉토리를지정한다. HTTP 서버가로컬머신에있다면 c:\https\codebase\ 과같은패스이름이된다. 일단이들옵션을지정하면, Project Web Deploy 메뉴를선택하여코드를서버로복사할수있다. Web Deploy 를선택하면델파이는컨트롤이포함될웹페이지를 HTML 디렉토리에복사하고, 컨트롤을코드베이스디렉토리에복사한다. 그러면앞에서간단하게만들어본액티브폼.ocx 파일을배포해보도록하자. Project Web Deployment Options 메뉴를선택하고, 대화상자의내용을다음과같이설정한다. 물론여기에서보여준디렉토리정보는개발자의컴퓨터의.ocx 파일의위치에해당되는것이므로모두들다를것이다. 아마도제공되는 CD-ROM 의 HTML 파일의내용도이렇게설정되어있으므로액티브폼의디렉토리가 C:\Book\Chap29 가아니면액티브폼의내용을 IE 로볼수없을것이다. 그럴때에는 HTML 파일을열어서자신의디렉토리에맞게변경하기만하면된다. 여기서 URL 을 c:/book/chap29 로설정하였는데, 물론앞에서간단히설명했듯이웹서버
24 의위치를알면웹서버의 URL 이름을이용하여디렉토리까지만설정하면된다. 여기서는개발자가일단웹서버가없어도컨트롤을쉽게보고디버깅할수있도록개발자의컴퓨터의물리적인디렉토리를그대로지정하였다. 여기서주의할것은 URL 명명규칙상 \ 가아닌 / 을사용한다는것이다. 그리고, 만약에서버가리모트웹서버이면, 로컬컴퓨터에 HTML 파일과코드베이스파일을저장하도록지정한후, FTP 를이용해서웹페이지에배포해야한다. OK 버튼을클릭하고, Project Web Deploy 메뉴를선택하면지정된디렉토리에.htm 파일이생성될것이다. 필자의 HTML 파일의코드는다음과같다. <HTML> <H1> Delphi 4 ActiveX Test Page </H1><p> You should see your Delphi 4 forms or controls embedded in the form below. <center><p> <OBJECT classid="clsid:761b37b2-31e6-11d e838052e" codebase="c:/book/chap29/activeformproj1.ocx"#version=1,0,0,0 width=372 height=200 align=center hspace=0 vspace=0 > </OBJECT> </HTML> 물론, HTML 태그를이용하여 <OBJECT>, </OBJECT> 사이의 width, height 등의내용을변경하여폼의크기도변경할수있고, 그밖의다른내용도에디터를이용하여쉽게변경이가능하다. 그러면, IE 를띄우고만들어진 HTML 파일을더블클릭하여실제액티브폼을띄워보자. 이때다음에설명할코드사인을하지않은.ocx 파일이포함되지않은액티브폼이므로 IE 의보기 인터넷옵션메뉴를선택하고보안레벨을 낮음 으로선택해야액티브폼을볼수있다. 보안레벨을 보통 이상으로설정한경우에는코드사인이된액티브 X 컨트롤만볼수있다.
25 코드사인 (Code Signing) 코드사인의가장중요한요소는인증을부여할수있는업체에게서코드키 (code key) 를부여받는것이다. 마이크로소프트에서는테스트의목적으로키를생성할수있는방법을제공하고있다. 마이크로소프트의웹사이트에가면이에대한정보를얻을수있으며, Authenticode 2.0 에대한글을읽어보면도움이될것이다. 델파이 4 는프로젝트옵션페이지에서 code signature 정보를지정할수있다. Project Web Deployment Options 대화상자의 Project 페이지에서 Code Sign Project checkbox 를체크하고, Code Signing page 에서배포할라이센스파일의이름과 private key 를지정하면끝난다. Application name, optional company URL 필드는컨트롤이다운로드될때이곳에회사의정보를적어넣으면된다. 또한, 암호화알고리즘을선택할수있는데디폴트로는가장흔히사용되는 MD5 가선택되어있을것이다. MD5 는 RSA Data Security 에의해개발된해슁알고리즘으로 128 비트해쉬 (hash) 값을만들어낸다. 다른것으로 SHA 1 을선택할수있는데, 이것은 NIST(National Institute of Standards and Technology) 와 NSA(National Security Agency) 에의해개발된해슁알고리즘으로 160 비트해쉬값을만들어낸다.
26 웹보안 (Web Security) 액티브 X 컨트롤은강력하고편리하지만사용자에게심각한위험을초래할수도있다. 액티 브 X 컨트롤을만드는사람이면꼭고려해야할사항이있어서여기에몇가지원칙을나열 하였다. 1. 당연한말이지만해로운액티브 X 컨트롤을만들면안된다. 2. 만들어진컨트롤이함부로변형될수있으면안된다. 3. 아무나함부로사용할수있도록해서는안된다. 가능하면인증을받고패스워드에신 경을쓰도록한다. 4. 가능하면어떤사람이, 어디서컨트롤을다운로드받았는지파악할수있도록서버를 설정한다. 액티브 X 컨트롤은인터넷보다는사실인트라넷환경에적절하다고할수있다. 인트라넷 에액티브 X 컨트롤을배포하는사람은다음과같은사항에신경을쓰는것이좋다. 1. Code signature 는완벽한보안이되지못한다. 그러므로과신은금물이다. 2. 아주믿을만하지못한사람이만든 HTML 파일에포함된액티브 X 컨트롤을받아들이 지않는것이좋다. 추가적인배포옵션 그밖에도웹배포를할때지정할수있는옵션들이많은데, 여기에대해서조금더알아보도록하자. CAB 파일을설정하면윈도우 95 에서사용되던캐비넷이라는압축파일로파일라이브러리를관리할수있도록할수있다. 캐비넷압축은다운로드속도를많이줄여주므로, 인터넷환경에서는매우유용하게사용될수있다. 설치도중에브라우저가캐비넷에저장된파일의압축을해제해서저장하므로, 수행성능의저하나비효율성은거의없다고생각해도된다. 보통액티브 X 컨트롤이나액티브폼을델파이에서개발하여배포할때에는처음에런타임패키지를배포하고, 작아진컨트롤을업그레이드로배포하는것이효율적이다. 이렇게하기위해서처음에패키지에대한옵션을설정할수있다. 참고로, 델파이에의해제공되는모든패키지는기본적으로볼랜드에서코드사인한것이므로쉽게 CAB 파일로통합해서배포할수있다. 이렇게액티브 X 컨트롤을배포할때패키지나다른추가적인파일과함께배포되어야한다면,.INF 파일이자동으로생성된다. 이파일은다운로드할파일과액티브 X 라이브러리를
27 설정하는방법등에대한내용을지정하게된다. 옵션의조합 다음테이블은패키지와 CAB 파일압축, 코드사인에대한정보를옵션의체크박스에서 선택할때의결과에대해서정리한것이다. 패키지 / 추가파일 CAB 압축코드사인결과 X X X.OCX 파일단독 X X O.OCX 파일단독 X O X.OCX 파일을포함한 CAB 파일 X O O.OCX 파일을포함한 CAB 파일 O X X.INF 파일과.OCX 파일그리고추가적인파일과패키지 O X O.INF 파일과.OCX 파일그리고추가적인파일과패키지 O O X O O O.INF 파일,.OCX 파일을포함한.CAB 파일, 그리고추가적인파일과패키지를포함한 CAB 파일.INF 파일을포함한 CAB 파일,.OCX 파일을포함한 CAB 파일, 추가적인파일과패키지를포함한 CAB 파일 Packages, Additional Files 탭 웹배포옵션의 Packages, Additional Files 탭에서어떤패키지를배포할것인지지정할수있다. 특정패키지의설정을변경하려면 Packages used by project 리스트박스에나열된패키지중에서변경할패키지를선택하면된다. 기본적으로이들탭의옵션내용은동일하다. CAB 옵션에서 Compress in a separate CAB 옵션은각패키지별로분리된.CAB 파일을생성한다. 이옵션이디폴트로설정되어있다. Compress in a project CAB 옵션은프로젝트.CAB 파일에서의패키지를포함하게하는옵션이다. Output 옵션은패키지가버전정보를가지고있거나코드사인에대한내용을설정하는옵션으로 Use file VersionInfo 옵션은패키지파일의리소스에저장된버전정보를.INF 파일에서사용할수있도록한다. Code sign file 옵션은패키지나.CAB 파일의코드사인을한다. Directory and URL options 옵션에서 Target URL 에디트박스는 URL 형태로서의웹서버의패키지위치를지정한다. 이에디트박스가비어있으면, 목적기계에이미파일이존재하는것으로간주한다. 즉, 패키지가지정된위치에존재하지않으면, 액티브 X 컨트롤
28 의다운로드가실패한다. Target directory 에디트박스에는웹서버에서패키지의패스를 지정한다. 정리 (Summary) 이번장을마치기전에관심있는독자들을위해델파이와 COM, 액티브 X 컨트롤에대해공부할거리를제시하고자한다. 기본적으로는 TActiveXControl 이지원하는각종인터페이스의정의와설명을마이크로소프트의 SDK 등의자료를이용해서숙지하는것이필요하며, 그밖에앰비언트프로퍼티 ( 컨테이너에서제공되는프로퍼티 ), 커스텀레지스트리엔트리를추가하는법등의정보를알아보는것이좋겠다. 가장좋은공부법은다소어렵더라도 Inprise 에서제공하는뉴스그룹을참조하는것이가장큰도움이될것으로생각되는데, borland.public.delphi.activex.controls.writing 과 borland.public.delphi.oleautomation 의 2 사이트가가장많은정보를가지고있으며, 이를읽다보면좋은사이트가많이소개되어있으니한번씩들러보는것이도움이될것이다.
PowerPoint Template
JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것
More informationMicrosoft Word - ntasFrameBuilderInstallGuide2.5.doc
NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,
More informationC# Programming Guide - Types
C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든
More informationPowerPoint Presentation
Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음
More information제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호
제이쿼리 () 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 CSS와마찬가지로, 문서에존재하는여러엘리먼트를접근할수있다. 엘리먼트접근방법 $( 엘리먼트 ) : 일반적인접근방법
More information다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");
다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher
More informationWindows 8에서 BioStar 1 설치하기
/ 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar
More informationMicrosoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx
To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse
More informationCOM의 기초 개념
COM 의기초개념 (Basic Concepts of Component Object Model) COM (Component Object Model) 은 OLE 와액티브 X 기술의기초가되는개념으로인터페이스라는미리정의된루틴의세트를통해각객체들간의상호운용을가능하게해주는객체기반의프로그래밍 specification 이다. COM 은기본적으로소스코드수준의표준이아니라바이너리표준이다.
More information고급 COM 기술의 활용 (II)
고급 COM 기술의활용 (II) (Using Advanced COM Techniques II.) 이번장에서는액티브 X 를이용하여여러가지객체나어플리케이션을개발할때부딪힐수있는문제점들과이들에대한해결책을제시할것이다. 그렇게방대한내용은아니지만, 소프트웨어를개발하다보면실제로아주간단한문제로골머리를싸맬때가매우많다. 이번장에서는이런문제들에대해서알아본다. 여기에서소개하는많은팁들은
More informationISP and CodeVisionAVR C Compiler.hwp
USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler
More informationgnu-lee-oop-kor-lec06-3-chap7
어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base
More informationDialog Box 실행파일을 Web에 포함시키는 방법
DialogBox Web 1 Dialog Box Web 1 MFC ActiveX ControlWizard workspace 2 insert, ID 3 class 4 CDialogCtrl Class 5 classwizard OnCreate Create 6 ActiveX OCX 7 html 1 MFC ActiveX ControlWizard workspace New
More information델파이 4 프로그래밍의 이해 (Understandings of Delphi 4 Programming)
델파이 4 프로그래밍의이해 (Understandings of Delphi 4 Programming) 오브젝트파스칼과심도있는델파이프로그래밍의세계로들어가기전에, 이번장에서는델파이를사용하여첫번째윈도우어플리케이션을제작하고전반적인델파이의환경에대해서알아볼것이다. 내용의수준이높지는않겠지만, 흔히알고있었던내용이라고하더라도별생각없이넘어갔던것들도많을것이다. 그러면, 델파이 4
More informationSOFTBASE XFRAME DEVELOPMENT GUIDE SERIES ActiveX 컴포넌트가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax
SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES 2012.02.18 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone 02-2108-8030 Fax 02-2108-8031 www.softbase.co.kr Copyright 2010 SOFTBase Inc. All rights reserved 목차 1 장 : ActiveX
More informationAPI - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어
메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어서가장중요한부분이라고도할수있기때문입니다. 1. 새로운메크로생성 새메크로만들기버튺을클릭하여파일을생성합니다. 2. 메크로저장 -
More informationMicrosoft PowerPoint - chap02-C프로그램시작하기.pptx
#include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의
More information[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme
8 차시메뉴와대화상자 1 학습목표 안드로이드에서메뉴를작성하고사용하는방법을배운다. 안드로이드에서대화상자를만들고사용하는방법을배운다. 2 확인해볼까? 3 메뉴 1) 학습하기 [ 그림 8-1] XML 을이용한옵션메뉴설정방법 public boolean
More information쉽게 풀어쓴 C 프로그래밍
Power Java 제 20 장패키지 이번장에서학습할내용 패키지의개념 패키지로묶는방법 패키지사용 기본패키지 유틸리티패키지 패키지는연관된클래스들을묶는기법입니다. 패키지란? 패키지 (package) : 클래스들을묶은것 자바라이브러리도패키지로구성 ( 예 ) java.net 패키지 네트워크관련라이브러리 그림 20-1. 패키지의개념 예제 패키지생성하기 Q: 만약패키지문을사용하지않은경우에는어떻게되는가?
More informationMicrosoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx
To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 개발환경구조및설치순서 JDK 설치 Eclipse 설치 안드로이드 SDK 설치 ADT(Androd Development Tools) 설치 AVD(Android Virtual Device) 생성 Hello Android! 2 Eclipse (IDE) JDK Android SDK with
More information<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>
Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.
More informationSecure Programming Lecture1 : Introduction
Malware and Vulnerability Analysis Lecture3-2 Malware Analysis #3-2 Agenda 안드로이드악성코드분석 악성코드분석 안드로이드악성코드정적분석 APK 추출 #1 adb 명령 안드로이드에설치된패키지리스트추출 adb shell pm list packages v0nui-macbook-pro-2:lecture3 v0n$
More information쉽게 풀어쓴 C 프로그래밍
Power Java 제 7 장클래스와객체 이번장에서학습할내용 객체지향이란? 객체 메시지 클래스 객체지향의장점 String 클래스 객체지향개념을완벽하게이해해야만객체지향설계의이점을활용할수있다. 실제세계는객체로이루어진다. 객체지향이란? 실제세계를모델링하여소프트웨어를개발하는방법 절차지향과객체지향 절차지향프로그래밍 (procedural programming): 문제를해결하는절차를중요하게생각하는방법
More informationMicrosoft Word - windows server 2003 수동설치_non pro support_.doc
Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로
More informationMicrosoft Word - src.doc
IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...
More informationq 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2
객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가
More information슬라이드 1
전자정부개발프레임워크 1 일차실습 LAB 개발환경 - 1 - 실습목차 LAB 1-1 프로젝트생성실습 LAB 1-2 Code Generation 실습 LAB 1-3 DBIO 실습 ( 별첨 ) LAB 1-4 공통컴포넌트생성및조립도구실습 LAB 1-5 템플릿프로젝트생성실습 - 2 - LAB 1-1 프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new
More informationJAVA PROGRAMMING 실습 08.다형성
2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스
More informationPowerPoint Presentation
public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +
More information쉽게 풀어쓴 C 프로그래밍
제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace
More informationMicrosoft PowerPoint - chap01-C언어개요.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을
More information. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요
. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요소로써안드로이드시스템에서는 Activities, Services, Content Providers,
More information- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=
JPA 와 Hibernate - 스프링의 JDBC 대신에 JPA를이용한 DB 데이터검색작업 - JPA(Java Persistence API) 는자바의 O/R 매핑에대한표준지침이며, 이지침에따라설계된소프트웨어를 O/R 매핑프레임워크 라고한다. - O/R 매핑 : 객체지향개념인자바와관계개념인 DB 테이블간에상호대응을시켜준다. 즉, 객체지향언어의인스턴스와관계데이터베이스의레코드를상호대응시킨다.
More informationPowerPoint Presentation
객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television
More informationiii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.
Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:
More informationView Licenses and Services (customer)
빠른 빠른 시작: 시작: 라이선스, 라이선스, 서비스 서비스 및 주문 주문 이력 이력 보기 보기 고객 가이드 Microsoft 비즈니스 센터의 라이선스, 서비스 및 혜택 섹션을 통해 라이선스, 온라인 서비스, 구매 기록 (주문 기록)을 볼 수 있습니다. 시작하려면, 비즈니스 센터에 로그인하여 상단 메뉴에서 재고를 선택한 후 내 재고 관리를 선택하십시오. 목차
More information 메소드 오버로딩
객체지향언어로서의오브젝트파스칼 (Object Pascal As A OOP) 오브젝트파스칼의객체지향성을몰라도델파이어플리케이션을쉽게만들수있다. 단순히폼을하나만들고, 거기에여러가지컴포넌트들을추가하고, 이벤트핸들러에적당한내용의코드들을추가하면그걸로충분한것이다. 그렇지만, 이것을이해하면델파이가어떤방법으로작업을처리하는지이해할수있고, 자신만의컴포넌트를만들어내거나, 비교적커다란프로젝트를진행할때에커다란도움을받게될것이다.
More informationJDK이클립스
JDK 와이클립스설치 A. JDK 다운로드, 설치및환경설정 지금부터 JDK를다운로드받아설치하고 JDK를윈도우에서활용할수있도록환경을설정하는전과정을소개한다. 다운로드 www.oracle.com 사이트에접속하여 Downloads 메뉴를선택한후 [ 그림 1] 과같이 "Java for Developers" 를클릭한다. [ 그림 1] www.oracle.com 사이트
More informationPowerPoint Presentation
객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean
More information1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과
1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas
More information어댑터뷰
04 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adatper View) 란? u 어댑터뷰의항목하나는단순한문자열이나이미지뿐만아니라, 임의의뷰가될수 있음 이미지뷰 u 커스텀어댑터뷰설정절차 1 2 항목을위한 XML 레이아웃정의 어댑터정의 3 어댑터를생성하고어댑터뷰객체에연결
More informationNTD36HD Manual
Upnp 사용 D7 은 UPNP 를지원하여 D7 의네크워크에연결된 UPNP 기기에별다른설정없이연결하여, 유무선으로네트워크상의연결된 UPNP 기기의콘텐츠를재생할수있습니다. TV 화면의 브라우저, UPNP 를선택하면연결가능한 UPNP 기기가표시됩니다. 주의 - UPNP 기능사용시연결된 UPNP 기기의성능에따라서재생되지않는콘텐츠가있을수있습니다. NFS 사용 D7
More informationNo Slide Title
Copyright, 2001 Multimedia Lab., CH 3. COM object (In-process server) Eun-sung Lee twoss@mmlab.net Multimedia Lab. Dept. of Electrical and Computer Eng. University of Seoul Seoul, Korea 0. Contents 1.
More informationInstall stm32cubemx and st-link utility
STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7
More information이것이 델파이 4
이것이델파이 4! (This Is Delphi 4!) 델파이 4 는현재사용할수있는가장유연하면서도강력한개발도구이다. 델파이 4 는비주얼인터페이스디자인과강력한객체지향언어로서의특징을가지고있는오브젝트파스칼언어를통합하고있다. 개발자는이를이용하여빠르면서도직관적이고, 견고한 Win32 어플리케이션을쉽게개발할수있다. 이번장에서는델파이 4 에서새롭게선보이는여러가지기능과특징들을소개한다.
More informationMicrosoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx
2018 학년도 1 학기 JAVA 프로그래밍 II 514760-1 2018 년봄학기 5/10/2018 박경신 Lab#1 (ImageTest) Lab#1 은영상파일 (Image) 을읽어서정보를출력 Java Tutorials Lesson: Working with Images https://docs.oracle.com/javase/tutorial/2d/images/index.html
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More informationPowerPoint 프레젠테이션
인터페이스 배효철 th1g@nate.com 1 목차 인터페이스의역할 인터페이스선언 인터페이스구현 인터페이스사용 타입변환과다형성 인터페이스상속 디폴트메소드와인터페이스확장 2 인터페이스의역할 인터페이스란? 개발코드와객체가서로통신하는접점 개발코드는인터페이스의메소드만알고있으면 OK 인터페이스의역할 개발코드가객체에종속되지않게 -> 객체교체할수있도록하는역할 개발코드변경없이리턴값또는실행내용이다양해질수있음
More informationBEA_WebLogic.hwp
BEA WebLogic Server SSL 설정방법 - Ver 1.0-2008. 6 개정이력 버전개정일개정내용 Ver 1.0 2008 년 6 월 BEA WebLogic Server SSL 설명서최초작성 본문서는정보통신부 한국정보보호진흥원의 보안서버구축가이드 를참고하여작성되었습니다. 본문서내용의무단도용및사용을금합니다. < 목차 > 1. 개인키및 CSR 생성방법
More informationVisual Basic 반복문
학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For
More information슬라이드 1
- 1 - 전자정부모바일표준프레임워크실습 LAB 개발환경 실습목차 LAB 1-1 모바일프로젝트생성실습 LAB 1-2 모바일사이트템플릿프로젝트생성실습 LAB 1-3 모바일공통컴포넌트생성및조립도구실습 - 2 - LAB 1-1 모바일프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new Mobile Project 메뉴를선택한다.
More information목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.
소프트웨어매뉴얼 윈도우드라이버 Rev. 3.03 SLP-TX220 / TX223 SLP-TX420 / TX423 SLP-TX400 / TX403 SLP-DX220 / DX223 SLP-DX420 / DX423 SLP-DL410 / DL413 SLP-T400 / T403 SLP-T400R / T403R SLP-D220 / D223 SLP-D420 / D423
More informationPowerPoint Presentation
Package Class 1 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section
More information<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>
SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......
More informationVisual Basic Visual Basic 소개
1. Visual Basic 소개 학습목표 MS 비주얼베이직 6.0과 2010의차이 비주얼베이직 2010 express 설치 비주얼베이직 2010의통합개발환경 프로그램의시작과실행 2 1. 소개 1.1 MS 비주얼베이직 6.0과 2010의차이 1.2 비주얼베이직 2010 express 설치 1.3 비주얼베이직 2010의통합개발환경 1.4 프로그램의시작과실행 3
More informationMicrosoft PowerPoint - Chapter 6.ppt
6.Static 멤버와 const 멤버 클래스와 const 클래스와 static 연결리스트프로그램예 Jong Hyuk Park 클래스와 const Jong Hyuk Park C 의 const (1) const double PI=3.14; PI=3.1415; // 컴파일오류 const int val; val=20; // 컴파일오류 3 C 의 const (1)
More informationC++ Programming
C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout
More information4S 1차년도 평가 발표자료
모바일 S/W 프로그래밍 안드로이드개발환경설치 2012.09.05. 오병우 모바일공학과 JDK (Java Development Kit) SE (Standard Edition) 설치순서 Eclipse ADT (Android Development Tool) Plug-in Android SDK (Software Development Kit) SDK Components
More informationChapter #01 Subject
Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned
More information제11장 프로세스와 쓰레드
제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드
More informationStuduino소프트웨어 설치
Studuino 프로그래밍환경 Studuino 소프트웨어설치 본자료는 Studuino 프로그래밍환경설치안내서입니다. Studuino 프로그래밍 환경의갱신에따라추가 / 수정될수있습니다. 목차 1. 소개... 1 2. Windows... 2 2.1. 프로그래밍환경설치... 2 2.1.1. 웹설치버전설치방법... 2 2.2. Studuino 프로그래밍환경실행...
More informationMF5900 Series MF Driver Installation Guide
한국어 MF 드라이버설치설명서 사용자소프트웨어 CD-ROM................................................ 1.................................................................... 1..............................................................................
More informationInterstage5 SOAP서비스 설정 가이드
Interstage 5 Application Server ( Solaris ) SOAP Service Internet Sample Test SOAP Server Application SOAP Client Application CORBA/SOAP Server Gateway CORBA/SOAP Gateway Client INTERSTAGE SOAP Service
More information오버라이딩 (Overriding)
WindowEvent WindowEvent 윈도우가열리거나 (opened) 닫힐때 (closed) 활성화되거나 (activated) 비활성화될때 (deactivated) 최소화되거나 (iconified) 복귀될때 (deiconified) 윈도우닫힘버튼을누를때 (closing) WindowEvent 수신자 abstract class WindowListener
More informationDLL(Dynamic Linked Library)
제 11 장동적연결라이브러리 11.1 DLL 의링크 11.2 DLL 의종류 실습 11-1 Implicit 링킹을통한정규 DLL 달력만들기 실습 11-2 Explicit 링킹을통한정규 DLL 달력만들기 실습 11-3 확장 DLL 을통한주민등록번호조회 프로그램만들기 DLL(Dynamic Linked Library) DLL 이란? 동적연결라이브러리 프로그램내부에라이브러리가있는것이아니라따로독립적으로실행가능한파일
More information학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2
학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 6.1 함수프로시저 6.2 서브프로시저 6.3 매개변수의전달방식 6.4 함수를이용한프로그래밍 3 프로시저 (Procedure) 프로시저 (Procedure) 란무엇인가? 논리적으로묶여있는하나의처리단위 내장프로시저 이벤트프로시저, 속성프로시저, 메서드, 비주얼베이직내장함수등
More information17장 클래스와 메소드
17 장클래스와메소드 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 1 / 18 학습내용 객체지향특징들객체출력 init 메소드 str 메소드연산자재정의타입기반의버전다형성 (polymorphism) 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 2 / 18 객체지향특징들 객체지향프로그래밍의특징 프로그램은객체와함수정의로구성되며대부분의계산은객체에대한연산으로표현됨객체의정의는
More informationMicrosoft Word - 3부A windows 환경 IVF + visual studio.doc
Visual Studio 2005 + Intel Visual Fortran 9.1 install Intel Visual Fortran 9.1 intel Visual Fortran Compiler 9.1 만설치해서 DOS 모드에서실행할수있지만, Visual Studio 2005 의 IDE 를사용하기위해서는 Visual Studio 2005 를먼저설치후 Integration
More information고급 COM 기술의 활용
고급 COM 기술의활용 (I) (Using Advanced COM Techniques I.) 이번장에서는비교적고급이라고할수있는 COM 에서컬렉션을구현하는방법과콜백 함수를이용하여인터페이스간통신을하는방법, 그리고연결점 (Connection Point) 인터페 이스를사용하여이벤트를구현하는방법을예제를통해익히도록한다. 컬렉션객체의구현 델파이의컴포넌트들중에는여러개의서브아이템을소유하는클래스들이많다.
More informationMicrosoft PowerPoint - chap10-함수의활용.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과
More informationvar answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");
자바스크립트 (JavaScript) - HTML 은사용자에게인터페이스 (interface) 를제공하는언어 - 자바스크립트는서버로데이터를전송하지않고서할수있는데이터처리를수행한다. - 자바스크립트는 HTML 나 JSP 에서작성할수있고 ( 내부스크립트 ), 별도의파일로도작성이가능하다 ( 외 부스크립트 ). - 내부스크립트 - 외부스크립트
More informationSpring Boot
스프링부트 (Spring Boot) 1. 스프링부트 (Spring Boot)... 2 1-1. Spring Boot 소개... 2 1-2. Spring Boot & Maven... 2 1-3. Spring Boot & Gradle... 3 1-4. Writing the code(spring Boot main)... 4 1-5. Writing the code(commandlinerunner)...
More informationMVVM 패턴의 이해
Seo Hero 요약 joshua227.tistory. 2014 년 5 월 13 일 이문서는 WPF 어플리케이션개발에필요한 MVVM 패턴에대한내용을담고있다. 1. Model-View-ViewModel 1.1 기본개념 MVVM 모델은 MVC(Model-View-Contorl) 패턴에서출발했다. MVC 패턴은전체 project 를 model, view 로나누어
More informationgnu-lee-oop-kor-lec10-1-chap10
어서와 Java 는처음이지! 제 10 장이벤트처리 이벤트분류 액션이벤트 키이벤트 마우스이동이벤트 어댑터클래스 스윙컴포넌트에의하여지원되는이벤트는크게두가지의카테고리로나누어진다. 사용자가버튼을클릭하는경우 사용자가메뉴항목을선택하는경우 사용자가텍스트필드에서엔터키를누르는경우 두개의버튼을만들어서패널의배경색을변경하는프로그램을작성하여보자. 이벤트리스너는하나만생성한다. class
More information9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요
9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요 [ 그림 9-1] 시간예약앱 활동과정 - 2 - [ 그림 9-2] 안드로이드 SDK Manager [ 예제 9-1]main.xml 1
More information임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과
임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수
More informationMicrosoft PowerPoint App Fundamentals[Part1](1.0h).pptx
To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 애플리케이션기초 애플리케이션컴포넌트 액티비티와태스크 Part 1 프로세스와쓰레드 컴포넌트생명주기 Part 2 2 Library Java (classes) aapk.apk (android package) identifiers Resource & Configuration aapk: android
More information<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>
Power Java 제 19 장배치관리자 이번장에서학습할내용 배치관리자의개요 배치관리자의사용 FlowLayout BorderLayout GridLayout BoxLayout CardLayout 절대위치로배치 컨테이너안에서컴포넌트를배치하는방법에대하여살펴봅시다. 배치관리자 (layout manager) 컨테이너안의각컴포넌트의위치와크기를결정하는작업 [3/70] 상당히다르게보인다.
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 9 강. 클래스의활용목차 멤버함수의외부정의 this 포인터 friend 선언 static 멤버 임시객체 1 /17 9 강. 클래스의활용멤버함수의외부정의 멤버함수정의구현방법 내부정의 : 클래스선언내에함수정의구현 외부정의 클래스선언 : 함수프로토타입 멤버함수정의 : 클래스선언외부에구현
More informationMicrosoft PowerPoint - e pptx
Import/Export Data Using VBA Objectives Referencing Excel Cells in VBA Importing Data from Excel to VBA Using VBA to Modify Contents of Cells 새서브프로시저작성하기 프로시저실행하고결과확인하기 VBA 코드이해하기 Referencing Excel Cells
More information지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR
Configure Kernel Build Environment And kernel & root file system Build 2018-09-27 VLSI Design Lab 1 지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함.
More information<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E >
6. ASP.NET ASP.NET 소개 ASP.NET 페이지및응용프로그램구조 Server Controls 데이터베이스와연동 8 장. 데이터베이스응용개발 (Page 20) 6.1 ASP.NET 소개 ASP.NET 동적웹응용프로그램을개발하기위한 MS 의웹기술 현재 ASP.NET 4.5까지출시.Net Framework 4.5 에포함 Visual Studio 2012
More informationMicrosoft PowerPoint - CSharp-10-예외처리
10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.
More informationJavascript
1. 이벤트와이벤트핸들러의이해 이벤트 (Event) 는웹브라우저에서발생하는다양한사건을말합니다. 예를들면, 버튼을마우스로을했다거나브라우저를닫았다거나 Enter 키를눌렀다거나등등아주다양한사건들이있습니다. 그렇다면이벤트핸들러 (Event Handler) 는무엇일까요? 이다양한이벤트들을핸들링 ( 처리 ) 해주는것입니다. 예를들면, 어떤버튼을했을때메시지창이뜨게하는등을말합니다.
More information1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할
15 장기타주제들 auto_ptr 변환함수 cast 연산자에의한명시적형변환실행시간타입정보알아내기 (RTTI) C++ 프로그래밍입문 1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout > *p; if (*p
More informationEclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일
Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 Introduce Me!!! Job Jeju National University Student Ubuntu Korean Jeju Community Owner E-Mail: ned3y2k@hanmail.net Blog: http://ned3y2k.wo.tc Facebook: http://www.facebook.com/gyeongdae
More information구조화 저장소 기법
구조화저장소기법 (Structured Storage Technique) 만약정해진포맷의파일형식을써야하는것이아니라, 데이터를저장할때대단히유연하고도강력한방법이존재한다면얼마나편리할까? 구조화저장 (structured storage) 이라는새로운방식으로이러한문제를해결할수있다. 구조화저장은 DocFIle 이나 OLE 복합파일 (OLE compound file) 이라는이름으로도불리고있는새로운저장방식이다.
More informationMF3010 MF Driver Installation Guide
한국어 MF 드라이버설치설명서 사용자소프트웨어 CD-ROM................................................ 1.................................................................... 1..............................................................................
More informationFlex Builder 2 & 차트
FLEX Builder 2 를이용한 FLEX 어플리케이션제작 홍성원 한국어도비시스템즈기술영업부차장 FLEX 어플리케이션을제작하기위해서는먼저 FLEX의컴포넌트기반개발방법을이해해야한다. FLEX는컴포넌트기반개발방법을지원하므로개발자는제공되는 FLEX 컴포넌트를사용하여어플리케이션을개발하거나컴포넌트를조합하여새로운컴포넌트를제작할수있다. FLEX 어플리케이션을제작할때가장먼저하는작업은컨테이너라는컴포넌트를사용하여사용자인터페이스를정의하는것이다.
More information11장 포인터
누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리
More information델파이 4 IDE의 내부 (Internals of Delphi 4’s IDE)
델파이 4 IDE 의내부 (Internals of Delphi 4 s IDE) 이번장에서는델파이의통합개발환경에대하여알아보도록한다. IDE(Integrated Development Environment) 는어플리케이션을설계하고, 실행시키고, 테스트할수있도록해주는환경을말하는것으로, 프로그램을쉽게개발할수있도록도와주는기능을한다. 과거에는개발자가통합개발환경이없이텍스트에디터로소스를편집해서,
More information목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault
사용자매뉴얼 JetFlash Vault 100 ( 버전 1.0) 1 목차 1. 시스템요구사항... 3 2. 암호및힌트설정 ( 윈도우 )... 3 3. JetFlash Vault 시작하기 ( 윈도우 )... 7 4. JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault 찾아보기... 10 JetFlash
More information윈도우시스템프로그래밍
데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생
More informationSQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자
SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전
More informationMicrosoft PowerPoint - ÀÚ¹Ù08Àå-1.ppt
AWT 컴포넌트 (1) 1. AWT 패키지 2. AWT 프로그램과이벤트 3. Component 클래스 4. 컴포넌트색칠하기 AWT GUI 를만들기위한 API 윈도우프로그래밍을위한클래스와도구를포함 Graphical User Interface 그래픽요소를통해프로그램과대화하는방식 그래픽요소를 GUI 컴포넌트라함 윈도우프로그램만들기 간단한 AWT 프로그램 import
More informationMango-IMX6Q mfgtool을 이용한 이미지 Write하기
Mango-IMX6Q mfgtool 을 이용한이미지 Write 하기 http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document
More information슬라이드 1
CCS v4 사용자안내서 CCSv4 사용자용예제따라하기안내 0. CCS v4.x 사용자 - 준비사항 예제에사용된 CCS 버전은 V4..3 버전이며, CCS 버전에따라메뉴화면이조금다를수있습니다. 예제실습전준비하기 처음시작하기예제모음집 CD 를 PC 의 CD-ROM 드라이브에삽입합니다. 아래안내에따라, 예제소스와헤더파일들을 PC 에설치합니다. CD 드라이브 \SW\TIDCS\TIDCS_DSP80x.exe
More informationJAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각
JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.
More information로거 자료실
redirection 매뉴얼 ( 개발자용 ) V1.5 Copyright 2002-2014 BizSpring Inc. All Rights Reserved. 본문서에대한저작권은 비즈스프링 에있습니다. - 1 - 목차 01 HTTP 표준 redirect 사용... 3 1.1 HTTP 표준 redirect 예시... 3 1.2 redirect 현상이여러번일어날경우예시...
More informationSplentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M
Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: http://www.olivetech.co.kr E-Mail: tech@olivetech.co.kr TEL: 031-726-4217 FAX: 031-726-4219
More information