![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Наследование [D6, WinXP]
webpauk © (2007-11-21 18:10:00)
TDel = class(TComponent)
public
fID: Integer;
LblDel: TLabel;
procedure pLblDelClick(Sender: TObject);
end;
procedure TDel.pLblDelClick(Sender: TObject);
begin
if MessageDlg('Удалить:: '+LblDel.Caption+'?', mtConfirmation, [mbYes, mbNo], 0)<>mrYes then Abort;
end;
var
fLbl: TDel;
begin
fLbl:=TDel.Create(Self);
fLbl.OnClick=MyLblClick;
end;
procedure Form.MyLblClick(SeTobject);
begin
inherited;
doSomeThing...
end;
наследования метода Click (TDel.pLblDelClick) - не происходит.
Как?
Leonid Troyanovsky (2007-11-21 19:29:00) [1]
> Johnmen © (21.11.07 18:59) [16]
> Хотел поглумиться. Не буду...
А ведь надо было дать коленом под зад.
Надо.
--
Regards, LVT.
webpauk (2007-11-21 19:11:00) [2]эх вы...
всего то делов:
TDelLabel = class(TLabel)
private
fOnClick: TNotifyEvent;
procedure Click; override;
published
property OnClick: TNotifyEvent read fOnClick write fOnClick;
end;
procedure TDelLabel.Click;
begin
MessageDlg('Click', mtInformation, [mbOk], 0);
if Assigned(FOnClick) then FOnClick(Self);
end;
TMyClass = class(TComponent)
public
Lbl: TDelLabel;
constructor Create(AOwner: TComponent); override;
end;
Johnmen (2007-11-21 18:59:00) [3]Хотел поглумиться. Не буду...
webpauk (2007-11-21 18:43:00) [4]
> Плохиш © (21.11.07 18:39) [14]
unit Unit1;
interface
uses
SysUtils, Types, Classes, QGraphics, QControls, QForms, QDialogs,
QStdCtrls;
type
TMyClass = class(TComponent)
public
Lbl: TLabel;
procedure LblClick(Sender: TObject);
constructor Create(AOwner: TComponent); override;
end;
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.xfm}
constructor TMyClass.Create(AOwner: TComponent);
begin
Lbl:=TLabel.Create(Self);
Lbl.Caption:='Click Me';
Lbl.OnClick:=LblClick;
end;
procedure TMyClass.LblClick(Sender: TObject);
begin
MessageDlg('Clicked', mtInformation, [mbOk], 0);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
fMyClass: TMyClass;
begin
fMyClass:=TMyClass.Create(Self);
with fMyClass do
begin
Lbl.Parent:=Self;
Lbl.Left:=10;
Lbl.Top:=10;
end;
end;
end.
Плохиш (2007-11-21 18:39:00) [5]
> webpauk © (21.11.07 18:37) [12]
>
> > Плохиш © (21.11.07 18:35) [11]
>
> ага...
> кодом
и каким же?
Плохиш (2007-11-21 18:39:00) [6]
> webpauk © (21.11.07 18:33) [10]
> да я понимаю ошибку...
> как правильно унаследовать
По моему, тебе уже года два назад советовали что-нибудь почитать
webpauk (2007-11-21 18:37:00) [7]
> Плохиш © (21.11.07 18:35) [11]
ага...
кодом
Плохиш (2007-11-21 18:35:00) [8]
> webpauk © (21.11.07 18:27) [8]
> но ведь событие OnClick - определено...
> и если fLbl.OnClick=MyLblClick; не прописывать, обработчиком
> будет TDel.pLblDelClick
Нифигасе, и обосновать сиё утверждение сможешь?
webpauk (2007-11-21 18:33:00) [9]да я понимаю ошибку...
как правильно унаследовать
Reindeer Moss Eater (2007-11-21 18:30:00) [10]А при чем здесь наследование?
Или ты про это?
procedure Form.MyLblClick(SeTobject);
begin
inherited;
А у предка Form есть метод MyLblClick?
webpauk (2007-11-21 18:27:00) [11]но ведь событие OnClick - определено...
и еслиfLbl.OnClick=MyLblClick;не прописывать, обработчиком будет TDel.pLblDelClick
Reindeer Moss Eater (2007-11-21 18:25:00) [12]Или ты думаешь, что если создать такой класс
TDummy = class(TComponent)
...
property OnLightOn : TNotifyEvent;
...
end;
То он волшебным образом реагировать на зажигание люстры в комнате?
Reindeer Moss Eater (2007-11-21 18:23:00) [13]а что как?
начни с того, что у TComponent нет вообще никакого OnClick. И твой чудесный TDel тоже никак не реагирует на клики мыши.
webpauk (2007-11-21 18:20:00) [14]а как?
Reindeer Moss Eater (2007-11-21 18:19:00) [15]Это тебе только так кажется.
Это простое присвоение значения свойству.
webpauk (2007-11-21 18:18:00) [16]var
fLbl: TDel;
begin
fLbl:=TDel.Create(Self);
fLbl.OnClick=MyLblClick; - наследует TDel.pLblDelClick
end;
Reindeer Moss Eater (2007-11-21 18:12:00) [17]Главное что именно и у кого именно.
:)
Reindeer Moss Eater (2007-11-21 18:11:00) [18]А есть что наследвать?