Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.09.2011, 01:50   #1
Xsires
Пользователь
 
Регистрация: 30.09.2009
Сообщений: 39
По умолчанию ОоП полиморфизм ... наследование ...

добрый время суток =) у меня есть массив TBitBtn но вот для решения мой задачи мне хотелось бы расширить чуть чуть этот класс ... как на его основе создать класс с новым полем скажем byte типа ??? сорь за банальный вопрос но в ооп я сооовсем не въезжал даже представления не имею =(
Xsires вне форума Ответить с цитированием
Старый 04.09.2011, 02:47   #2
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Код:
type
  TMyBitBtn = class(TBitBtn)
  private
    FMyField: Byte;
  published
    property MyField: Byte read FMyField write FMyField;
  end;
Три замечания:
1. Чтобы TMyBitBtn можно было бросать на форму как это делается с TBitBtn - его надо регистрировать в IDE. Если не регистрировать - то на форму бросить в design-time не получится. Но можно использовать ручками, например:

Код:
type
  TForm1 = class(TForm)
  ...
    MyBtn1: TMyBitBtn;
  ...
  end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  MyBtn1 := TMyBitBtn.Create(Self);
  MyBtn1.Parent := Self;
  MyBtn1.Name := 'MyBtn1';
  MyBtn1.Top := 5;
  MyBtn1.Left := 5;
  MyBtn1.Width := 100;
  MyBtn1.Height := 25;
  MyBtn1.MyField := 3;
end;
2. Вместо полноценной регистрации можно использовать обходной путь: метод Geo. Но надо понимать, что в инспекторе объектов MyField тогда не появится. Просто при запуске программы вместо TBitBtn на форме повально будут использоваться модифицированные TBitBtn.

3. А может - вам и не нужен подкласс? Любой компонент имеет свойство Tag: Integer, которое вы можете использовать как угодно, на своё усмотрение.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 04.09.2011, 15:38   #3
Xsires
Пользователь
 
Регистрация: 30.09.2009
Сообщений: 39
По умолчанию

Огромное спасибо =)
Xsires вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Полиморфизм Zorgan Visual C++ 22 29.08.2011 12:23
полиморфизм slayerblya Общие вопросы C/C++ 1 27.02.2011 01:43
Полиморфизм, наследование и деструкторы alex_triton Общие вопросы C/C++ 1 08.11.2009 17:52
Паскаль ООП. Примеры программ с использованием ООП SeЯgey Помощь студентам 5 13.05.2009 21:55