1. 설명
종료할 프로그램의 Handle을 얻고 그것을 이용해서 프로세스ID를 얻어서 프로그램을 종료 시킨다.

2. 소스
var
ProcessHandle: THandle;

ProcessId: Integer;

Wnd: HWND;

begin

Wnd := FindWindow('KMUtilWndClass',nil);

// 윈도우 핸들로 부터 프로세스 ID를 얻습니다.

GetWindowThreadProcessId(Wnd, @ProcessId);

// 얻어진 ID로 부터 프로세스 핸들을 얻습니다.

ProcessHandle := OpenProcess(PROCESS_TERMINATE, False, ProcessId);



// 죽여 버립니다...

TerminateProcess(ProcessHandle, 4);
Posted by Gu Youn
,
1. 설명
메인폼 이전에 출력할 폼을 먼저 모달로 보여준후 모달 폼에서 mrOk, mrCancel에 따라서 그 이후 메인폼 보여줄지 말지를 결정한다.

2. 소스
    Loginform := TLoginForm.Create(Application);

   try
     if LoginForm.ShowModal = mrCancel then
       Exit;
   finally
     LoginForm.Free;
   end;

   Application.CreateForm(TKomarooForm, KomarooForm);
   Application.CreateForm(TSendMemoForm, SendMemoForm);
   Application.Run;


Posted by Gu Youn
,
1. ActiveX Type Library의 IActiveFormXEvents에 추가하고자 하는 이벤트 이름으로 메소드(method)를 추가한다.
에를 들어 OnTestEvent를 추가한 경우 ActiveFormProj1_TLB.pas 파일에 자동으로 다음과 같은 항목이 추가된다.

    procedure OnTestEvent; dispid 209;
    FOnTestEvent: TNotifyEvent;
    property OnTestEvent: TNotifyEvent read FOnTestEvent write FOnTestEvent;

2. ActiveFormImpl1.pas에 Event Triger 함수를 작성한다.
procedure TrigerOnTestEvent(Sender: TObject);

procedure TActiveFormX.TrigerOnTestEvent(Sender: TObject);
begin
   if FEvents <> nil then FEvents.OnTestEvent;
end;

3. 이벤트 발생 시켜야 할 시점에 TgigerOnTestEvent함수를 호출하면 이벤트가 발생하게 된다.

4. html에서 이벤트 핸들러 작성하는 방법
<script language="vbscript">
  sub Form1_OnTestEvent()
    //이벤트발생할떄 처리할 내용 구현
  End Sub
</script>
Posted by Gu Youn
,
프로그램 오류 처리 방법을 설명한다.

Use 에 SysUtils 추가 하고
아래처럼 작성한다. 상세한 내용은 Help 참고
검색 키워드 : Try...except,

1. try...finally
try
  //에러 없을때 하고 싶은 것들
finally
  //리소스 해제 등 꼭 처리해줘야 하는 것들
end;

2. try...except
try
 //에러 없을때 하고 싶은 것들
except on e : Exception do
 //에러 처리
else
 //except로 처리 되지 않은 exception 처리
end;
Posted by Gu Youn
,