![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() ![]() Есть класс-предок и, соответственно, его наследник. Код:
TP = class private {Тут много разных полей, не относящихся к делу...} FEnabled:Boolean; protected SetEnabled(Value:Boolean); public property Enabled:Boolean read FEnabled write SetEnabled; end; Tx = class FPole:TP; public procedure SetBaseVersion(Value:TP); published property Prop:TP read FPole write SetBaseVersion; end; ... procedure TP.SetEnabled(Value:Boolean); begin FEnabled:=Value; end; procedure TX.SetBaseVersion(Value:TP); begin if Value.Enabled=True then FPole:=TP.Create; end; Моя проблема заключается в том, что я не понимаю, почему вперёд вызывается TP.SetEnabled, а не TX.SetBaseVersion. Из-за того, что вперёд вызывается SetEnabled, комп выдаёт ошибку AV. Вопрос: как исправить? Как вызывать сначало TX.SetBaseVersion? Или что в моей ситуации можно придумать? ![]() Дополнительный вопрос. Очень интересно, посмотрите, у TP нет конструктора, как и деструктора. Но я могу написать FPole:=TP.Create, а FPole:=TP.Destroy нет. Почему??? Делаем'c разные игры. Искать на glscene.ru Последний раз редактировалось DungeonLords, 23.05.2010 в 22:57. |