Здравствуйте!
Мне нужно создать свой компонент наследник, скажем, TButton. При этом, если убираем курсор мыши, нужно, чтобы текст у кнопки изменился на другой. Для этого нужно переопределить событие MouseLeave. Так вот, если переопределять событие Click, то всё нормально, т.к. TButton имеет эту процедуру и ее можно переопределить. А что делать с MouseLeave?
Код:
unit CountBtn;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TCountBtn = class(TButton)
private
FCount: integer;
protected
procedure Click;override; //<---здесь не ругается
procedure MouseLeave; override; //<--здесь ругается
public
procedure ShowCount;
published
property Count:integer read FCount write FCount;
constructor Create(aowner:Tcomponent); override;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Mihan Components', [TCountBtn]);
end;
constructor TCountBtn.Create(aowner:Tcomponent);
begin
inherited create(Aowner);
end;
procedure TCountBtn.MouseLeave;
begin
inherited mouseleave; //<---здесь ругается
dec(fcount);
end;
procedure Tcountbtn.Click;
begin
inherited click; //<--- здесь не ругается.
FCount:=FCount+1;
end;
procedure TCountBtn.ShowCount;
begin
Showmessage('По кнопке '+ caption+' вы сделали: '+inttostr(FCount)+' клик(а/ов)');
end;
end.