2010년 9월 29일 수요일

Excel 2010 2개 이상 열때 새창으로 생성하기

 MS Office 2010 기준

 

 시작 > 실행 > regedit

 

HKey_Classes_Root\Excel.Sheet.8\Shell\Open
HKey_Classes_Root\Excel.Sheet.12\Shell\Open

 

위 두 경로를 오른클릭 > 내보내기  로 백업 권장

 

 위의 두 경로에서 ddeexec 디렉토리 삭제

     HKey_Classes_Root\Excel.Sheet.8\Shell\Open\command

     HKey_Classes_Root\Excel.Sheet.12\Shell\Open\command

 

 

 

 command 디렉토리에서 기본값(REG_SZ)를 아래로 변경

 "C:\Program Files\Microsoft Office\Office14\EXCEL.EXE" /m "%1"

 

 기본값(REG_SZ)를 제외한 다른 키 값 삭제

 

 Excel 실행시켜 확인

2010년 8월 24일 화요일

주식워런트증권(ELW)

- 어떤 종목을 미래에 정한 어느시점에 미리 정한 가격으로 사거나 팔 수 있는 권리로

  일반증권과 같이 매매 할 수 있게 한 유가증권

  만기전에도 ELW의 가치에 따라 얼마든지 사거나 팔수 있다

EX) 삼성전자 현재가 600,000 / 행가가 650,000  / 만기일 3개월뒤 / 만기가 700,000

=> 삼성전자 현물에 투자하지 않고 주식워런트에 투자하면 3개월뒤 70만원으로 상승한

   삼성전자 주식을 행사가인 65만원에 살수있는 권리가 주어진다

 


- 주식워런트의 장점

 


  1. 일반주식계좌에서 쉽게 할 수 있다

  2. 기초자산에 투자하는것보다 고수익이 난다

  3. 상승장에서는 만기를 노려 안전하게 투자할 수 있다

  4. 하락장에서도 수익을 낼 수 있다

  5. 변동성장에서는 양방향 투자도 할 수 있다 -> 단기투자로 안전하게

  6. 기초자산이 대형주라 세력의 개입이 없고 방향성 판단이 쉬운편이다

  7. 적은금액으로도 투자할 수 있다

  8. 헷지전략으로 이용할 수 있다 (보험의 성격)

  9. 거래세가 없다(수수료가 싼 증권사가 유리)

  

- 주의할점

  1. 고수익인만큼 고위험이 뒤따른다 (장점이자 단점이다)

  2. 전체적인 시황을 고려하면서 업종/종목의 방향성 판단이 아주 중요하다

  3. 만기일,손익분기점,행사가격,레버리지 등을 잘 따져야 한다

 


- 기본용어

 *기초자산 - ELW의 기초가 되는 KOSPI200지수나 KOSPI200에 71개 대형주

 * 만기일(잔존일) - 기초자산의 만기평가금액이 결정되는 최종거래일까지 남은 일수

                   시간가치의 중요성 (가능성)

 * 행사가격 - 권리행사의 기준이 되는 가격

              현재가와의 차이가 중요 (가능성)

 * 레버리지 - 기초자산 변화율 , 가격움직임(1%)에 따른 ELW의 변화비율

              기어링 * 델타 = 레버리지   /  지렛데효과

 * 프리미엄  - 손익분기점 = 행사가 +( ELW가격 / 전환비율)

               손익분기율 = (손익분기점 - 현재가) / 현재가

 * 기어링  - 기초자산에 투자하는것이 ELW에 투자하였을 때 보다 몇배의 비용을 수반하는지

                 보여주는 지표 

             기어링 = 기초자산의 가격 / (ELW/전환비율)  -> 11.81배

 


 * 델타 - 기초자산이 1원 움직일때 ELW의 가격변화

          EX) ELW의 가격변화 = (델타*기초자산의 가격변화)*전환비율  

    -> 삼성전자 (전환비율 0.02) /델타 0.4712) 10,000상승시 ELW 94.72원상승

 


 *전환비율 -  권리행사를 하기위해 필요한 ELW의 수 ( 1/전환비율)

              1권리 :  ELW비율

 * 세타 - 1일이 지남으로인한 시간가치 하락분

 * 패리티 - 기초자산현재가 / 행사가

 * 괴리율 - ELW이론가와 현재가와의 차이율

            (ELW현재가 = ELW이론가+(이론가*괴리율)

 


- 만기일과 결제사항

   * 최종거래일 - ELW를 거래할 수 있는 마지막 날

   * 만기일 - ELW의 권리행사자가 확정되는 날

   * 만기지급일 - 현금결제가 일어나서 증권계좌에 현금이 입금되는 날

 


- 만기평가가격 산술 방법

   * 기초자산 - 최종거래일을 포함 직전 5일간 종가의 평균값

   * 주가지수 - 최종거래일의 종가를 만기평가지수로 사용

 


- 발행인

  발행증권사마다 다 다르지만 현재는 많이 안정화 평준화 됬으며 ELW 종목의 가치나       

  인기에 따라 유동성의 차이가 나기도 한다

  1. 유동성풍부

     LP(유동성공급자)의 중요성 - 안정적이고 적절한 호가 제시

  2. 적정한 호가 스프레드(Bid-A나 Spreads)

     매도가와 매수가의 차이는 어느 거래소에서든지 존재하는 거래비용의 일부분이다

     차이가 작을수록 투자자에게 유리함

     호가스프레드는 거래량이 클수록 작고 작을수록 크다

  

- 좋은 ELW 고르는 법

   1. 올바른 기초자산 선정

      방향 : 강세장(상승장) -콜워런트 / 하락장(약세장) - 풋워런트

      타이밍 : 단기 외가격워런트 - 공격적투자자 / 장기 내가격워런트 - 보수적투자자

      변동폭 : 외가격ELW - 기초자산이 단기간에 급격히 움직일때 적합

               내가격ELW - 가장보수적이며 기초자산의 장기적 움직임이 예상될때 적합

   2. 만기 90~120일 남음것  - 길면 둔하고 짧으면 급변함

      레버리지 4~6  / 거래량이 많거나 LP가 적정호가를 제시하는 ELW

2010년 8월 17일 화요일

2010년 8월 4일 수요일

Argument 있는 Retrieve의 조회후 dw의 쿼리 보기

 

보통 실행되는 sql을 미리보려면

sqlpreview event 의 sqlsyntax 나 GetSqlSelect() 함수를 이용하는데

이때 Argument 값은 :argument 형식으로 보여지게 되어

실제 어떤 값이 적용 됐는지 알기 힘든경우가 있습니다.

 

Debug를 돌리다보면 Argument 값에 실제 값을 볼수 있는데 Debug가

프로그램 실행시에 봐야 하는경우도 있겠지요.

 

방법은 이렇습니다.

우선 DBprofile 에서 Edit 를 누르시면 생성한 DBprofile의 여러가지 설정을

하시는 화면이 뜨는데요.

1. DBprofile 에서 Edit 선택.

2. Tansaction 탭을 선택.

3. Disable Bind 체크.

4. Prieview 탭선택

5. Prieview 내용중 SQLCA.DBParm = "DisableBind=1" 부분을 복사

6. Application 이나 기타 DB연결 정보 적으신곳에 붙여 넣습니다.

ORACLE은 이렇고요

 

MS-SQL의 경우 Disable Bind 체크를 해도 SQLCA.DBParm 이부분에 DisableBind=1 이 나타나지 않습니다.

거꾸로 체크를 하지 않으면 DisableBind = 0 이라고 나타나지요...

MS-SQL은 DisableBind=1 이부분을 복사하지 않으셔도 체크만 하시면 됩니다.

(ADO.NET의 경우만 확인했습니다. ODBC나 OLE는 확인 하지 못했습니다.)

 

ORACLE은 DBprofile 설정시 Disable Bind 가 기본적으로 체크되어 있지 않은것 같구요

MS-SQL은 기본적으로 체크가 되어있는거 같습니다. 

(이부분은 따로 확인해보진 않았지만 DisableBind 부분을 건드린 기억이 없기에 말씀 드린것입니다.)

 

보태기 :

만약 저 내용을(Argument에 실제로 들어간 값을) GetItem....()으로 구해 와야 하는경우가 있다면

select col_1

,        col_2

,        :argument_1 /*compute column으로 생성*/

from   table_1

where pk_01 =  :argument_1

과 같은 식으로 하시면

,        :argument_1 /*compute column으로 생성*/ 

부분이 dwo 상에 compute column으로 생성 됩니다.


ex ) 스크립트 (dw.sqlpreview 이벤트)

if keydown(keyshift!) and keydown(keycontrol!) then
 FileOpen('.\temp_sql_' + this.classname() + '.txt',StreamMode!,Write!,LockWrite!,Replace!)
 long  ll_i
 
 FileWrite(1, '/*########## ' + this.classname() + ' = "' + this.dataobject + '" ##########*/~r~n~r~n~r~n')
 
 for ll_i = 1 to len(sqlsyntax) step 32765
  FileWrite(1, mid(sqlsyntax, ll_i, 32765))
 next
 FileClose(1)
 Run("notepad .\temp_sql_" + this.classname() + ".txt")
end if

 

/*

이 문장을 Datawindow 의  sqlpreview 이벤트에 넣어서 사용하고 있습니다.

dw는 유저오브젝트를 사용하는 경우가 많을 건데... 거기다 넣으면 훨씬 좋겠지요.

시프트키와 콘트롤키를 누르고 조회를 하면 실행되는 dw의 sql명령이 아규먼트의 값도 치환되어서

노트패드로 뜨기때문에 오류 검색을 쉽게 할 수 있습니다.

일반적으로 조회할때는 안 뜨고... 개발자가 필요할때만 SQL문장을 확인 할 수 있는 거죠..  */

2010년 7월 28일 수요일

기본 명령어

1. 배열(Array)처리 함수
LowerBound : 지정한 배열의 하위 경계
UpperBound : 지정한 배열의 상위 경계


2. Bolb관련 함수
Blob : 텍스트 데이터를 Blob 데이터로 변환 또는 복사
BlobEdit : PB가 지원하는 데이터를 Blob변수로 복사
BlobMid : Blob 데이터 문자열에서 N번째 문자를 반환
Len : 문자열의 길이


3. 데이터형 검사 및 변환 함수
Char : blob,정수,문자열을 문자로 바꿔서 반환
Dec : 문자열의 내용을 십진수로 바꿔서 반환
Double : 문자열의 내용을 Double로 바꿔서 반환
Integer : 문자열의 내용을 정수로 바꿔서 반환
Long : 문자열의 내용을 long으로 바꿔서 반환
Real : 문자열의 내용을 실수로 바꿔서 반환
Date : 데이터베이스로부터 읽은 DateTime값에서 Date부분만 빼온다.
DateTime : Date나 Time을 DateTime 값으로 변환한다.
IsDate : 지정한 문자열이 유효한 Date값을 지녔는지 검사한다.
IsNull : 넘어온 인자가 NULL인지 검사한다.
IsNumber : 지정한 문자열이 숫자값을 지녔는지 검사한다.
IsTime : 지정한 문자열이 유효한 Time값을 지녔는지 검사한다.
String : 지정한 형식으로 문자열을 얻는다.
Time : 데이터베이스로부터 읽은 DateTime값에서 Time부분만 빼온다.


4. 날짜,요일,시간 처리 함수
Day : 일자를 구한다(1에서 31 사이의 정수)
DayName : 주간의 요일명을 구한다.
DayNumber : 주간의 요일을 숫자로 표현한다.(예를들면 일요일은1, 목요일은 5)
DaysAfter : 지정한 날짜에 n일전,후를 구한다.
Hour : 주어진 시간의 시 값을 구한다.
Minute : 주어진 시간의 분 값을 구한다.
Month : 주어진 날짜의 월 값을 구한다.(1에서 12까지)
Now : 클라이언트의 시스템 시간을 구한다.
RelativeDate:주어진 날짜를 기준으로 n일 후 날짜를 구한다.
RelativeTime:주어진 시간을 기준으로 n초 후 시간을 구한다.
Second : 주어진 시간의 초 값을 구한다.
Today : 클라이언트의 현재 날짜를 구한다.
Year : 주어진 날짜의 년 값을 구한다.(1000에서 3000년까지임)


5.DDE클라이언트 함수
CloseChannel:OpenChannel함수로 열린 DDE서버 어플리케이션의 채널을 닫는다.
ExecRemote : 서버 어플리케이션에게 명령 실행을 요구한다.
GetDataDDE : 연결된 서버 어플리케이션으로부터 새로운 데이터를 받아온다.
GetDataDDEOrigin:연결된 서버 어플리케이션으로부터 원래의 데이터를 받아온다.
GetRemote : 서버 어플리케이션에게 데이터를 요구한다.
OpenChannel: DDE서버 어플리케이션을 연다.
RespondRemote:서버에게 명령 또는 데이터가 클라이언트에게 받아들여졌는지를 알려준다.
SetRemote : 서버 어플리케이션에게 지정한 값을 설정하도록 한다.
StartHotLink:서버 어플리케이션과의 연결을 시작한다.
StopHotLink: 서버 어플리케이션과의 연결을 종료한다.


6. DDE서버 함수
GetCommandDDE: 클라이언트 어플리케이션이 보낸 명령을 구한다.
GetCommandDDEOrigin:어떤 클라이언트 어플리케이션이 명령을 보냈는지 구한다.
GetDataDDE : 클라이언트 어플리케이션이 보낸 데이터를 구한다.
GetDataDDEOrigin:어떤 클라이언트 어플리케이션이 데이터를 보냈는지 구한다.
RespondRemote:클라이언트에게 명령 또는 데이터가 서버에게 받아들여졌는지를 알려준다.
SetDataDDE : 클라이언트 어플리케이션에게 데이터를 보낸다.
StartServerDDE:파워빌더를 서버로 동작하게 한다.
StopServerDDE:파워빌더가 서버로 동작하는 것을 중지한다.


7. 파일처리 함수
FileClose : 파일 닫기
FileDelete : 파일 삭제
FileExists : 파일 존재 유/무
FileLength : 파일 길이
FileOpen : 파일 열기
FileRead : 파일 읽기
FileSeek : 파일 내 위치 이동
FileWrite : 파일에 쓰기
GetFileOpenName:파일 열기 공통 다이얼로그 열기
GetFileSaveName:파일 저장 공통 다이얼로그 열기


8. 라이브러리 함수
LibraryCreate:라이브러리 생성
LibraryDelete:라이브러리 삭제
LibrarDirectory:pb라이브러리 파일의 모든 오브젝트의 리스트를 구한다.
LibraryExport:라이브러리 파일의 모든 오브젝트를 Export한다.
Library Import:지정한 라이브러리 파일에서 오브젝트를 Import한다.


9.MAPI함수
mailAddress :메일 메세지에 주소를 주거나 주소 리스트를 보여준다.
mailDELETEMessage :메일 메시지를 지운다.
mailGetMessages :메지시 id를 얻어온다.
mailHandle :내부 메일 시스템 핸들을 얻어온다.
mailLogOff :메세징 시스템과의 세션을 끊는다.
mailLogOn :메세징 시스템과의 세션을 시작한다.
mailReadMessage :메일 메시지를 읽는다.
mailRecipientDetails:지정된 수취인의 주소 정보를 보여준다.
mailResolveRecipient:불분명한 수취인 명을 결정한다.
mailSaveMessage :사용자 수신함에 새로운 메시지를 생성하거나 기존에 있는 메시지를 대체한다.
mailSend :메일 메시지를 보낸다.


10. 수치 처리 함수
Abs : 수치의 절대값을 얻는다.
Ceiling : 지정한 수보다 크거나 같은 최소 정수를 구한다.
Cos : 주어진 각도의 코사인 값을 구한다.
Exp : e를 Number만큼 거듭제곱한 값을 구한다.(e=2.71828182845904)
Fact : 계승값을 구한다. Number의 계승값은 1*2*3*...* Number이다.
Int : 소수점 이하를 버리고 가장 가까운 정수로 변환한다.
Log : 지정 숫자의 자연로그값을 구한다.
LogTen : 지정한 숫자에 대해 밑이 10인 로그값을 구한다.
Max : 두 수 중 큰 수를 구한다.
Min : 두 수 중 작은 수를 구한다.
Mod : 두 수를 나눈 나머지를 구한다.
Pi : 3.14159265358979를 구한다.
Rand : 난수를 구한다.
Randomize : 난수 발생기를 초기화한다.
Round : 숫자를 지정한 자릿수로 반올림한다.
Sign : 숫자의 부호를 결정한다. Number가 양수이면 1을 표시해주고 0이면 0,
음수이면 -1을 표시한다.
Sin : 주어진 각도의 사인 값을 구한다.
Sqrt : 양의 제곱근을 구한다.
Tan : 주어진 각도의 탄젠트 값을 구한다.
Truncate : 숫자의 소수점 이하를 버리고 정수로 변환한다.


11. 출력(Print)함수
Print : 현재 글꼴로 문자열을 인쇄한다.
PrintBitmap: 지정한 인쇄공간에 비트맵 이미지를 인쇄한다.
PrintCancel: 인쇄를 취소한다.
PrintClose : 현재 페이지를 프린터에 보내고 인쇄를 멈춘다.
PrintDefineFont:인쇄작업시 폰트를 정의한다. 파워빌더는 각각의 인쇄 작업에 대해 8가지 폰트를 제공한다.
PrintLine : 지정한 위치에 지정한 굵기로 타원을 그린다.
PrintOpen : 현재 페이지를 프린터에 보내고 새로운 페이지를 셋한다.
PrintOval : 지정한 위치에 지정한 굵기로 타원을 그린다.
PrintPage : 지정한 위치에 지정한 굵기로 둥근 모서리의 사각형을 그린다.
PrintRect : 지정한 위치에 지정한 굵기로 사각형을 그린다.
PrintRouneRect:지정한 위치에 지정한 굵기로 둥근 모서리의 사각형을 그린다.
PrintSend :지정한 문자열을 프린터에게 보낸다.
PrintSetFont:현재 인쇄 작업에 대한 글꼴을 지정한다.
PrintSetSpacing:라인간 너비를 지정한다.
PrintSetup : 프린터 설정 다이얼로그 박스를 부른다.
PrintText : 지정한 위치에 지정한 문자를 인쇄한다.
PrintWidth : 현재 글꼴에서 지정된 문자열의 너비를 구한다.
PrintX : 커서의 X좌표를 구한다.
PtintY : 커서의 Y좌표를 구한다.


12. 문자열 처리 함수
Asc : 문자열의 첫번째 문자의 ASCII값을 구한다.
Char : 주어진 ASCII값에 해당하는 문자를 구한다.
Fill : 지정한 문자를 반복시켜서 문자열을 만든다.
Left : 문자열의 시작부터 지정한 수의 문자를 읽어온다.
LeftTrim : 문자열의 시작에 있는 공백을 없앤다.
Len : 문자열의 길이를 구한다.
Lower : 주어진 문자열 내의 대문자를 소문자로 고친다.
Mid : 주어진 문자열에서 시작 위치와 끝 위치를 지정해 문자열의 일정 부분만을 구한다.
Pos : 다른 문자열에서 주어진 문자열의 위치를 찾는다.
Replace : 문자열의 일부를 다른 문자열로 바꾼다.
Right : 문자열의 끝에서 주어진 수의 문자를 얻어온다.
RightTrim : 문자열의 끝에 있는 공백을 없앤다.
Space : 지정한 길이로 공백 문자열을 얻는다.
Trim : 문자열의 시작과 끝의 공백을 없앤다.
Upper : 지정한 문자열 내의 소문자를 대문자로 고친다.


13. 시스템 및 환경 함수(System and Environment)
Clipboard : 윈도우의 클립보드의 내용을 얻는다.
GetApplication:현재 어플리케이션의 핸들을 구한다.
CommandParm: 어플리케이션 실행시 지정된 파라미터가 있을 경우 그값을 구한다.
DoScript : 애플 스크립트(AppleScript)를 실행한다.(매킨토시 버전에만 해당)
GetEnvironment:시스템의 운영체제와 프로세서 등과 같은 정보를 얻는다.
Handle : Window SDK함수를 부르기 위해 사용한다.
Post : 지정한 윈도우에 대한 메시지를 메시지 큐에 마지막에 삽입한다.
ProfileInt : 지정한 프로파일에서 숫자값을 얻어온다.
ProgileString:지정한 프로파일에서 문자열을 얻어온다.
Restart : 모든 스크립트의 실행을 중지하고, 모든 윈도우를 닫으며 데이터베이스에 Commit한후 연결을 끊고 다시 어플리케이션을 실행시킨다.
Run : 지정한 어플리케이션을 실행시킨다.
Send : 지정한 윈도우에 메시지를 순차적으로 보낸다.
SetProfileString:지정한 프로파일 값을 저장한다.
ShowHelp : 윈도우 3.x에 있는 도움말(Help)파일을 읽어 파워빌더 어플리케이션에서 사용할 수 있다.
SignalError: 어플리케이션 레벨에서의 시스템 에러를 발생한다.
Yield : 반복문 안에서 다른 오브젝트나 어플리케이션의 메시지가 발생됐는지를 체크할수 있게 한다.


14. 시간처리 함수
CPU : 현재 실행중인 PB어플리케이션 프로그램의 시작 시간부터 현재까지의 CPU시간을 구해준다.
Idle : 사용자가 아무런 입력이 없이 지정한 시간이 흐르면 Idle이벤트 발생시킨다.
Timer : 지정한 윈도우에 일정한 간격의 타이머를 지정하여 Timer이벤트를 발생시킨다.


15. 그밖의 함수
Beep : 정해진 시간(초단위)동안 경고음을 발생한다.
DBHandle : DBMS의 핸들을 반환한다.
IsValid : 지정한 윈도우가 열려있는지 검사한다.
KeyDown : 사용자가 특정한 키를 눌렀는가 검사한다.
MessageBox : 메시지 박스를 출력한다.
PixelsToUnits: 픽셀(Pixel)을 PB의 Unit로 바꾼다.
RGB : 특정 색상을 표현하는 Long형 값을 반환한다.
SetNull : 변수의 유형에 상관없이 변수를 Null로 지정한다.
SetPointer : 마우스 포인터를 지정한 모양으로 바꾼다.
TypeOf : 오브젝트의 형을 결정한다. 예를들면 CheckBox, Picture, RadioButton 등이다.
UnitsToPixels: PB의 Unit를 픽셀(Pixel)로 바꾼다.


1. UpperBound(배열명,{배열차원}) : 가끔 사용
(1) 개념 : 배열의 가장높은 경계값을 알아낸다.
Option으로 배열의 차원을 지정할 수 있으며 Default 차원은 1차원이다.

(2) Return : integer(배열의 가장높은 경계값)

(3) 예제
가)
integer li_number[7] , li_return
li_return = UpperBound(li_number) // li_return 은 7이 된다.
나)
string ls_name[5,6] integer li_return
li_return = UpperBound(ls_name,1) // li_return 은 5가 된다
li_return = UpperBound(ls_name,2) // li_return 은 6이 된다

(4) 메모 : 가변길이 선언 배열에서 ( ls_text[] )
위의 함수를 사용하여 0이 Return되면 배열이 아직 현 메모리에 적재되지 않았음을 의미한다.

(5) 상대함수 : LowerBound()


2. IsDate(string) : 자주 사용
(1) 개념 : 특정한 String이 정확한 Date인지를 확인한다.

(2) Return : Boolean ( Date가 맞으면 True 아니면 False이다. )

(3) 예제 boolean lb_check
lb_check = IsDate("1996/05/22") // lb_check 는 True이다
lb_check = IsDate("1996/00/22") // lb_check 는 False 이다

(4) 메모 : 특정한 String등을 Date로 변환시키기 직전에 많이 사용한다.

(5) 유사함수 : Isnull() , Isnumber() , Istime() , Isvalid()


3. Date(datetime) , : 자주사용 Date(string) , Date(year,month,day)
(1) 개념 : datetime , string , 년월일의 integer값을 Date 변수타입으로 변환한다

(2) Return : Date ( Valid 한 Date가 아닐때는 1900-01-01을 Return한다 )

(3) 예제 datetime ldt_this date ld_new
ld_new = Date(ldt_this)
IF ld_new = Date("1900-01-01") THEN
Messagebox("ERROR",'정확한 일자가 아닙니다 !!')
return
END IF
ld_new = Date("1996/08/15") ld_new = Date(1999,11,23)

(4) 유사함수 : DateTime()


4. Control명.ClassName() : 가끔사용 ClassName(변수명)
(1) 개념 : 특정한 Object의 Class명을 String으로 알아낸다.

(2) Return : String ( Error 발생시에는 empty string "" 이 반환된다)

(3) 예제
가)
string ls_name
ls_name = Parent.ClassName()
IF ls_name = "w_insa001u" THEN
sle_1.text = ls_name
END IF

// 어떤 Object의 Dragdrop Event 에서
string ls_name dragobject ldr_what
ldr_what = DraggedObject() ls_name = ldr_what.ClassName()
IF ls_name = 'em_delete' THEN
ldr_what.Drag(end!) Messagebox("Drag Object",'Drag된 Object 는 '& + ls_name + '입니다')
END IF

나)
long ll_qty string ls_class
ls_class = ClassName(ll_qty) // ls_class 는 'long' 을 받아온다
ls_class = ClassName(this) // ls_class 는 현 Object 의 Class 명칭을 받아온다


5. Object명.PostEvent(event명) : 자주사용
(1) 개념 : Script가 쓰여진 현 Event가 끝난뒤 특정 Object의 Event를 수행하게 한다. 위의 function은 script가 쓰여진 위치에 관계없음으로 그 이후에 어떤 scrip가 있다면 그것을 모두 수행한후에 실행된다.

(2) Return : Boolean (성공하면 true , event가 없거나 script가 없으면 false)

(3) 예제
cb_close.PostEvent(clicked!) // object에 기본적으로 있는 event일때
cb_close.PostEvent("ue_keydown") // User가 정의한 event일때


6. Object명.TriggerEvent(event명) : 매우 자주사용
(1) 개념 : 현 Event에서 어떤 특정Object의 특정Event를 즉각적 수행하고 돌아온다. Script가 쓰여진 위치가 중요하다

(2) Return : Boolean (성공하면 true , event가 없거나 script가 없으면 false)

(3) 예제
cb_check.TriggerEvent(clicked!) // object에 기본적으로 있는 event일때
cb_check.TriggerEvent("ue_check") // User가 정의한 event일때

(4) 메모 : 어떤 Event의 Script를 수행한다는 면에서는 Postevent와 Triggerevent는 동일하며 두 이벤트 중 어떤것을 써야할지의 선택기준은 현재의 Event가 수행되고 난뒤 어떤 Event를 이어서 수행시키느냐 (Postevent) , 즉각적으로 어떤 Event를 수행하느냐 (Triggerevent) 의 차이이다.