|
RichEdit를 상속받아 새 컴포넌트를 만드는 방법이 가장 좋을것 같네요.
아래와 같이 헤더 파일을 수정함으로서, DB Click 이벤트를 만드실 수 있습니다.
//---------------------------------------------------------------------------
#ifndef NewRichEditH
#define NewRichEditH
//---------------------------------------------------------------------------
#include <SysUtils.hpp>
#include <Controls.hpp>
#include <Classes.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
#include <StdCtrls.hpp>
//---------------------------------------------------------------------------
class PACKAGE TNewRichEdit : public TRichEdit
{
private:
TNotifyEvent FOnMouseDbClick;
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_LBUTTONDBLCLK, TMessage, CMMouseDBClickEvent)
END_MESSAGE_MAP(TControl)
void __fastcall CMMouseDBClickEvent(TMessage &Message) {
DoMouseDBClickEvent();
}
virtual void __fastcall DoMouseDBClickEvent() {
if(FOnMouseDbClick) FOnMouseDbClick(this);
}
protected:
public:
__fastcall TNewRichEdit(TComponent* Owner);
__published:
__property TNotifyEvent OnDblClick = {read=FOnMouseDbClick, write=FOnMouseDbClick};
};
//---------------------------------------------------------------------------
#endif
혹시 몰라서, DBClick을 추가시킨 컴포넌트도 올려드립니다. 아래 작업을 하시면 됩니다.
1. 압축을 적당한 곳에 푼다
2. BCB에서 [Component] - [Install Component] 를 선택
3. NewRichEdit.cpp 를 선택
4. Install 버튼 클릭
이렇게 하시면 Sample 탭에 NewRichEdit 컴포넌트가 들어갈껍니다.
soap 님이 쓰신 글 :
: 사용자가 RichEdit component 위에서 double click 했을 때의 event를 처리하게 하려면 어떻게 해야 합니까?
:
: RichEdit의 기본 Event에는 더블클릭이 없는 것 같은데...
: RichEdit component가 event handling을 해 줘야 하나요?
:
|