Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.18;
Скачать: CL | DM;

Вниз

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&#133


 
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, раз уж на то пошло

Да, не подумал&#133


 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.019 c
15-1192155645
Slider007
2007-10-12 06:20
2007.11.18
С днем рождения ! 12 октября 2007 пятница


15-1191664691
Tack
2007-10-06 13:58
2007.11.18
Есть редактор RTF с параллельным редактированием тегов?


2-1193294118
mrFreeman2007
2007-10-25 10:35
2007.11.18
Использование DLL


2-1193534997
San1712
2007-10-28 04:29
2007.11.18
Как удалить запись типа TSearchRec ?


15-1192696869
Shlomo
2007-10-18 12:41
2007.11.18
С D7 проект перешёл в D2006 и стал требовать DsnDBCst.pas/dcu – у