Форум: "Прочее";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];
Внизclass(T..., T...) Найти похожие ветки
← →
новый_ (2007-10-12 09:38) [0]Что означает class(1 тип, 2 тип)
для чего в скобках class указывается два типа через запятую.?
← →
Ega23 © (2007-10-12 09:39) [1]Это в Delphi?
← →
Ega23 © (2007-10-12 09:40) [2]Второй скорее всего interface
Но их принято с I начинать, а не с T
← →
новый_ (2007-10-12 09:45) [3]
> Ega23 ©
Дело в том, что мне необходимо написать новый компонент который бы унаследовал свойства и методы двух классов...
могули я написать напримет так:TMyNewType = class(TButton, TLabel)
...
end;
и что произойдет если они оба содержат метод Create.?
и как мне обращатся к свойстаом и методам обоих компонентов( классов по отдельности.) ???
← →
MBo © (2007-10-12 09:50) [4]>могули я написать напримет так:
>TMyNewType = class(TButton, TLabel)
нет, множественного наследования в Дельфи для классов нет, только с использованием интерфейсов
← →
palva © (2007-10-12 09:51) [5]В Delphi 7 множественное наследование не разрешено. Не знаю, может оно есть в современных версиях Delphi, но это вряд ли. Можно использовать интерфейсы, инкапсуляцию или вообще переделать структуру объектов, чтоб такого не было. Если множественное наследование все же нужно, используйте другой язык.
← →
Ega23 © (2007-10-12 09:52) [6]
> могули я написать напримет так:
> TMyNewType = class(TButton, TLabel)
> ...
> end;
Нет, в Delphi нету множественного наследования.
← →
новый_ (2007-10-12 09:55) [7]
> MBo © (12.10.07 09:50) [4]
А как мне это реализовать.?
← →
ЮЮ © (2007-10-12 10:00) [8]> А как мне это реализовать.?
А зачем TButton-у что-то от TLabel? У него свой Caption есть.
Если же нужна их композиция, то мотри исходники TLabledEdit и сваргать TLabledButton или TButtonedLabel :)
← →
MBo © (2007-10-12 10:01) [9]Создать составной контрол, хотя не очень понятно, для чего именно такой нужен.
Возможно, поможет изучение исходников TLabeledEdit
← →
Kolan © (2007-10-12 10:03) [10]> Создать составной контрол
+1, надо использовать композицию вместо наследования
← →
Ega23 © (2007-10-12 10:08) [11]
> А как мне это реализовать.?
Ну как-то так:TLabledButton = class
private
FButton : TButton;
FLabel : TLabel;
protected
procedure SetParent(AParent : TWinControl); override;
public
constructor Create;
destructor Destroy; override;
end;
constructor TLabledButton.Create;
begin
FLabel := TLabel.Create(nil);
FButton := TButton.Create(nil);
end;
destructor TLabledButton.Destroy;
begin
FLabel.Free;
FButton.Free;
inherited;
end;
← →
Kolan © (2007-10-12 10:11) [12]> Ну как-то так:
TLabledButton = class(TComponent)
constructor TLabledButton.Create(AOwner: TComponent);
begin
inherited;
FLabel := TLabel.Create(Self);
FButton := TButton.Create(Self);
end;
?
← →
Kolan © (2007-10-12 10:12) [13]> Ну как-то так:
TLabledButton = class(TComponent)
constructor TLabledButton.Create(AOwner: TComponent);
begin
inherited;
FLabel := TLabel.Create(Self);
FButton := TButton.Create(Self);
end;
?
← →
Kolan © (2007-10-12 10:13) [14]Ас корее всего даже не TComponent а TButton…
← →
clickmaker © (2007-10-12 10:19) [15]
> не TComponent а TButton…
с чего бы?
TControl, раз уж на то пошло
← →
Ega23 © (2007-10-12 10:21) [16]
> TLabledButton = class(TComponent)
>
А зачем?
← →
Kolan © (2007-10-12 10:41) [17]> А зачем?
Ну я про то, что он же не за зря кнопку с лейблом скрещивает, наверно хочет юросать на форму.
> TControl, раз уж на то пошло
Да, не подумал…
← →
jack128_ (2007-10-12 10:51) [18]
> TControl, раз уж на то пошло
Хм. Как то не принято от TControl наследоваться.. По крайней мере я ни одного такого контрола не видел. Либо TWinControl (в данном случае нужно именно его использовать) либо TGraphicControl
← →
Ega23 © (2007-10-12 11:03) [19]
> Ну я про то, что он же не за зря кнопку с лейблом скрещивает,
> наверно хочет юросать на форму.
И что? Чему это препядствует?
← →
clickmaker © (2007-10-12 11:05) [20]
> [18] jack128_ (12.10.07 10:51)
Да можно сразу от TPanel. Тогда и Label не понадобится
← →
Kolan © (2007-10-12 11:55) [21]> И что? Чему это препядствует?
Как сможешь добавить в палитру прямого наследника TObject, позовешь :)
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.042 c