Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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&#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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.042 c
15-1192695499
Ученик
2007-10-18 12:18
2007.11.18
У кого-нибудь есть книги по FreeBSD/Linux/Windows Server


15-1191311482
Константин Коваленко
2007-10-02 11:51
2007.11.18
Вакансия: программист Delphi + SQL (Днепропетровск, $800)


15-1192303418
ProgRAMmer Dimonych
2007-10-13 23:23
2007.11.18
Вопрос по русскому языку


15-1192190259
Cyrax
2007-10-12 15:57
2007.11.18
Дистрибьютеры, дилеры и ремонт техники в сервисных центрах...


1-1188404394
Turbouser
2007-08-29 20:19
2007.11.18
MS Document Explorer





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский