TCustomEdit를 상속받아 컴포넌트를 만들고 있습니다.
ChangeEvent에서 특정한 작업을 할려고 코딩을 했습니다.
TXEdit = class(TCustomEdit)
private
procedure On_EditChange(Sender : TObject);
:
:
published
property OnChange;
:
end;
constructor TXEdit.Create(AOwner : TComponent);
begin
Self.OnChange := On_EditChange;
end;
procedure TXEdit.On_EditChange(Sender : TObject);
begin
여기서 특정한 작업을 합니다.
end;
위와 같이 OnChange Event에서 특정작업을 하게 만들었습니다.
컴파일하고... 컴퍼넌트 등록하고...
만든 컴퍼넌트를 Form에 놓고... Event를 확인하니까...
OnChange Event는 나오더군요.
그래서 OnChange에서 더블클릭해서...
다음과 같이 했져..
procedure TForm1.OnChageXEdit1(sender : Tobject)
begin
ShowMessage('어쩌고 저쩌고..');
end;
실행해서 Edit에 문자를 입력하는 데... Change Event가 전혀
먹지를 안는군요.
즉, 컴포넌트에서 특정 이벤트를 사용해서 만들면...
개발자는 그 이벤트는 사용할 수 없는거 같아요.
컴포넌트에서도 사용하고 개발자도 사용하는 방법이 없을까요?
즐코하세요.
예를 들께여.. 아래처럼..
protected
procedure Change; override;
본체는..
procedure TXEdit.Change;
begin
//Do SomeThing...
inherited Change;
end;
하시면 될겁니다. ^_^
즐거운 프로그래밍 하시길~