6월 21일 델파이 연합 세미나에서 "VCL 컴포넌트 개발" 을 주제로 강연할 때 예제로 보여드렸던 세가지 컴포넌트들입니다.
세 가지의 컴포넌트는 다음과 같습니다.
TImpProcessExec
CommandLine 속성으로 주어진 프로그램을 실행키고, 해당 프로그램이 종료되면 OnProcessTerminate 이벤트를
발생시킵니다. 이 컴포넌트는 TComponent로부터 상속받는 넌비주얼(non-visual) 컴포넌트의 예를 보여주기 위한
것입니다. 속성과 이벤트를 선언하는 가장 기초적인 방법을 배울 수 있으며, 뽀나쓰로 가장 기초적인 쓰레드의 사용법도
볼 수 있습니다.
TImpContainerEdit
에디트이면서도 디자인시에 패널처럼 다른 컴포넌트를 포함할 수 있습니다. 버튼나 체크박스, 이미지등 아무
컨트롤이라도 포함할 수 있으며, 포함된 컴포넌트의 Align은 alLeft와 alRight만 허용됩니다. 이 컴포넌트는
ControlStyle 속성을 이용해 컨트롤의 특성을 변경하는 방법과, Win32 표준 컨트롤에 메시지를 이용해서 성질을
바꾸는 예를 보여줍니다.
TImpMDIBar
MDI 메인 폼에 놓으면 마치 차일드폼들에 대해 작업표시줄(TaskBar)처럼 동작합니다. 버튼이나 탭, 플랫버튼 형태로
선택할 수 있으며 다른 어떤 코드도 필요없습니다. 이 컴포넌트는 SetWindowLong() 함수를 이용해서 자신이 아닌
다른 윈도우의 윈도우프로시저를 서브클래싱하여 메시지를 가로채는 예를 보여줍니다. 또한 CreateWnd() 함수와
DestroyWnd() 함수가 반드시 쓰여야 하는 예를 보여주고, 마지막으로 베이스클래스를 적절히 선택하는 것이 얼마나
중요한지도 보여줍니다.
원래 이 컴포넌트들을 만든 목적 자체가 1시간30분 내에 직접 제작하는 것을 시연하는 것이었기 때문에(완성된 코드를
보여주는 것이 아니라) 코드는 가장 필수적인 정도만 구현되어 있습니다. 델파이 기준으로 볼 때 이 컴포넌트들의 소스는
모두 100줄씩입니다. 따라서 실용적인 관점에서는 완전히 완성되었다고 하기는 좀 모자란 부분도 있습니다만, 당장 사용
하기에 문제가 있는 것은 아닙니다. 또 일부러 실용적인 목적에도 나쁘지 않도록 기존에 많이 나와있는 컴포넌트들이
별로 다루지 않은 비교적 신선한 분야의 아이디어를 짜봤습니다.
그럼...
|
넘으넘으 감동입니다.
잘 볼게요.