델파이 초보자 입니다. 사용자가 직접 이벤트를 만들수 있지 않나요. 예를 들어 before_insert, after_insert 라는 이벤트를 만들어 기본 Base Window을 만들고 그걸 상속 받아 쓰고 싶거덩요... Object Inspector에도 등록이 되나요.... ...
어린왕자
•
2001.08.14 03:12
자세한건 컴포넌트 만들기 강좌들을 찾아보시면 되구요.
원리를 설명드릴께요.
사용자가 이벤트를 만들...
마형
•
2001.08.15 00:51
어린왕자 wrote:
> 자세한건 컴포넌트 만들기 강좌들을 찾아보시면 되구요.
>
> 원리를 설명드릴께요.
...
원리를 설명드릴께요.
사용자가 이벤트를 만들어줄려면..
이벤트 발생요건이 필요하고 (예를 들어서 마우스다운시키는 프로시저)
이벤트핸들러가 필요합니다. (마우스다운되면 호출될 프로시저)
당근 그전에 이벤트정의가 되어야죠 ( 마우스다운되면 호출될 프로시저 형태)
예를 들어. 다음과 같은 것이 필요하다는 거져..
procedure Doing;
FOnDoing :TMyEvent;
TMyEvent = procedure (Sender: TMyObject); // Sender는 파라메타로..
// 원하는대로 다른걸 넣을 수 있습니다.
구체적인 이벤트 핸들러(FOnDoing)을 정해주면 Doing이 실행될때 핸들러(FOnDoing)가 실행되야 하므로..
procedure Doing;
begin
if Assigned(FOnDoing) then FOnDoing(Sender); // Sender는 원하는 파라메타..
end;
다 되었습니다..
이제는 이 이벤트 핸들러를 사용할수 있게 해주는 거죠.
TFirstClass = Class (TObject)
private
FOnDoing: TMyEvent;
procedure Doing;
public
property OnDoing : TMyEvent read FOnDoing write FOnDoing;
end;
이렇게 하시면..TFirstClass에 TMyEvent가 정의 되었습니다.
OnDoing에 다가 원하는 핸들러 포인터를 넣어주면 되져.
public대신에 publish하면 인스펙터 오브젝트에 보일껍니다.
호동왕자 wrote:
> 델파이 초보자 입니다.
>
> 사용자가 직접 이벤트를 만들수 있지 않나요.
> 예를 들어 before_insert, after_insert
> 라는 이벤트를 만들어 기본 Base Window을 만들고
> 그걸 상속 받아 쓰고 싶거덩요...
>
> Object Inspector에도 등록이 되나요....
>
> 여쭈어 봅니다.
> 좋은 답변을 기대 합니다.