Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.
Внимание! Некоторое время письма не доходят до аккаунтов MAIL RU GROUP, не доходят на все почтовые ящики mail.ru, inbox.ru, bk.ru. Пишите им жалобы, чтобы быстрее восстановили получение писем, регистрируйтесь через яндекс почту и gmail, туда письма с активизацией доходят.

Вернуться   Форум программистов > Delphi > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 11.11.2018, 03:22   #1
Haberman
 
Регистрация: 01.05.2018
Сообщений: 4
Репутация: 10
Вопрос Что нужно добавить чтоб потомок Tpanel перестал быть Tpanel

Код:

unit Kontainer;

interface

uses
  SysUtils, Classes, Controls, ExtCtrls,Graphics;

type
  TKonteiner = class(TPanel)

Код:

 Accept:=(Source is TPanel);

TKonteiner - он всё еще TPanel!
Haberman вне форума   Ответить с цитированием
Старый 11.11.2018, 03:38   #2
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 17,401
Репутация: 3353

icq: 512-765
skype: alexp.frl
По умолчанию

И? Все правильно, так и должно быть.

Для просто получения класса можно ClassType использовать http://docs.embarcadero.com/products...ClassType.html
Alex11223 вне форума   Ответить с цитированием
Старый 11.11.2018, 16:50   #3
Black Fregat
Программист
Профессионал
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,147
Репутация: 840
По умолчанию

Цитата:
Сообщение от Haberman Посмотреть сообщение
чтоб потомок Tpanel перестал быть Tpanel
Это невозможно. Это один из принципов ООП - потомок всегда является объектом базового класса. Если же Вам так нужно, чтобы он не был TPanel, не наследуйте его от TPanel, а используйте, например, агрегирование - сделаёте некоторую TPanel членом класса
Black Fregat вне форума   Ответить с цитированием
Старый 11.11.2018, 16:57   #4
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 17,401
Репутация: 3353

icq: 512-765
skype: alexp.frl
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Это один из принципов ООП
Это принцип наследования, а не ООП.
ООП может быть без наследования.
Alex11223 вне форума   Ответить с цитированием
Старый 11.11.2018, 21:12   #5
Black Fregat
Программист
Профессионал
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,147
Репутация: 840
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
ООП может быть без наследования
Не вижу причин спорить о словах в области, где даже авторитеты до сих пор ломают копья..
Сформулирую более узко: это один из принципов реализации ООП в Object Pascal - потомок всегда является объектом базового класса.
Black Fregat вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TPanel Elock Lazarus, Free Pascal, CodeTyphon 3 03.01.2018 23:00
TPanel OmegaBerkut Общие вопросы Delphi 1 22.05.2013 18:01
Tpanel Кристинка89 Общие вопросы Delphi 3 12.09.2011 13:42
Перестал работать плеер. Что может быть? infrared Софт 3 29.03.2010 13:01
TPanel Valera Помощь студентам 10 07.08.2008 11:15


10:28.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru