![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Radio |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 17.2.2006 Репутация: нет Всего: нет |
А чем отличается обьект от компоненты?
|
|||
|
||||
| Foley |
|
|||
![]() Фсемба Яцца ![]() Профиль Группа: Участник Сообщений: 235 Регистрация: 31.1.2006 Где: Россия, Арх.обл Репутация: 2 Всего: 7 |
Ну если подумать, что Объекто Ориентированное Программирование, это программирование при помощи объектов, то наверно да...(ведь компоненты являються объектами...)
Хотя фиг знает... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Сомпонента это класс.
Компонента, брошенная на форму есть экземпляр класса, наследника TControl. То есть компонента не является объектом, пока она не создана при помощи конструктора или не брошена на форму. Иначе она есть объект. |
|||
|
||||
| Fin |
|
|||
![]() Дракон->Спать(); ![]() ![]() Профиль Группа: Участник Сообщений: 687 Регистрация: 4.1.2006 Репутация: нет Всего: 10 |
Компонента не обязательно может быть объектом. Если скажем она написано стилем структурного программирования. Конечно стараются сделать компоненту в ООП. Как наиболее доминируюший стиль программирования. VCL самой дельфи построена на ООП. И компоненты в Дельфи являются объектами.
Когда бросается компонента на форму, Оболочка Дельфи автоматически создает код для создания экземпляра данного объекта. -------------------- Пролетал мимо. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
||||
|
||||
| Fin |
|
|||
![]() Дракон->Спать(); ![]() ![]() Профиль Группа: Участник Сообщений: 687 Регистрация: 4.1.2006 Репутация: нет Всего: 10 |
Snowy, Я писал компоненту на чистом WinAPI. Когда разбирался с ней (WinAPI). И писал в стиле структурного программирования. Да и первые компоненты самой винды написаны в структурном стиле.
-------------------- Пролетал мимо. |
|||
|
||||
| remax |
|
|||
|
Доцент ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: 1 Всего: 5 |
Наверное проблема в терминологии...
1) Не вызывает сомнения, что для того чтобы поместить компоненту в палитру компонентов он должен быть наследником класса TComponent или от любого другого класса- наследника TComponent. Любые инсинуации на эту тему - бессмысленны. 2) Методы любого объекта - это процедуры. Которые, безусловно могут быть написаны в стиле структурного программирования. Мало этого, может быть большое количество локальных процедур - не имеющих соостветствия в методах объекта. Кроме того, Delphi поддерживает использование ассемблерного кода, что в общем случае даже не является структурным программированием. 3) Целый ряд компонент Delphi родными для него не являются. Это, например, ActiveX портированные из C++. В Delphi реализована только обвязка для взаимодействия с ним. Не забираясь дальше в дебри тонкостей программирования на делфи, можно сделать следующие выводы: 1) Любой компонент является объектом (или классом объекта, в терминологии Delphi) 2) ООП не исключает других техник программирования, таких как например структурное программирование Fin! Использование "чистого" WinAPI само по себе тоже не противоречит принципам ООП. Мало этого, совсем не обязательно использовать Windows вообще, чтобы реализовывать ООП! (Например, Kylix под Linux) Это сообщение отредактировал(а) remax - 23.2.2006, 03:33 -------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Fin, у тебя неверное представление о понятии "компонент".
Компонент Delphi это всегда наследник TControl. И никак иначе. Можешь реализовать его как угодно, но он все рабно должен быть классом, пронаследованным от TControl или любого его потомка. Например,сама по себе кнопка Windows не является компонентом. А вот TButton уже компонент. Мы говорим о компонентах, а не о элементахуправления User Interface. Это разные понятия. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
А это наследник Tobject -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| z-END |
|
|||
![]() прафесар™ ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3014 Регистрация: 13.3.2003 Где: Венья, Пиетари Репутация: 11 Всего: 102 |
Ты точно в словах не путаешься? Компонент это TComponent а контрол это TControl ? -------------------- Каждый чилавек пасвоему праф...а памоему НЕТ! |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
z-END, конечно путаю. Зачем спрашиваешь
Не TControl, а TComponent. Но суть та же. |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
1. Давайте называть правильно - компонент. И никак иначе.
2. Если имеется ввиду объект - экземпляр класса Object Pascal, то он никакого отношения к компонентам не имеет. Объект - экземпляр класса. Практически не зависит от среды и языка программирования. Компонент - элемент среды программирования. Зависит как от языка, так и от среды программирования (в данном случае - Delphi). -------------------- |
|||
|
||||
| remax |
|
||||
|
Доцент ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: 1 Всего: 5 |
Это что-то новенькое! Хотел бы я посмотреть, как "практически не зависимый от среды и языка программирования" экземпляр класса, например TButton1 из Delphi будет функционировать в среде VC!
Вообще-то, вся иерархия компонент Delphi есть ни что иное, как классы Object Pascal. И, следовательно, здесь очевидная взаимосвязь Но этот как раз тот случай, когдп перемена мест слов играет роль: Утверждение - Любой компонент является объектом. Верно Утверждение - Любой объект является компонентом. Не верно P.S. Что тут еще непонятного? Это сообщение отредактировал(а) remax - 23.2.2006, 14:25 -------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
||||
|
|||||
| SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 2 Всего: 74 |
Нет. Грамотно- компонента. Конечно, любой компонент наследник класса TComponent. -------------------- Всем добра |
|||
|
||||
| Fin |
|
|||
![]() Дракон->Спать(); ![]() ![]() Профиль Группа: Участник Сообщений: 687 Регистрация: 4.1.2006 Репутация: нет Всего: 10 |
У нас наверно чуть разная точка зрения на понятия.
IMHO Компонент никак не зависит от языка программирования. Это набор процедур, функций, сообшений, данных. Которые работают все вместе в совокупности для решения каких либо целей. Например компонента работы с XML. Компонента может быть выполнена, как и в стиле структурного программирования, так и ввиде объекта (класса), так и в виде совокупности классов (объектов). В этом коренное различие от одного единственного объекта (класса). Компонента для внешнего пользователя выступает черным яшиком. Программист который ее использует, знает только интерфейс компоненты. и все. Почему в дельфи начинают делать все компоненты с класса TComponent? Я думаю, потому что в этом классе решены некоторые рутинные вопросы. И с него удобно стартовать. Но это не значит, что в других языках, обязательная стартовая точка должна быть именно с этого класса. Это сообщение отредактировал(а) Fin - 23.2.2006, 16:40 -------------------- Пролетал мимо. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |