Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизКак правильно создать наследников фрейма Найти похожие ветки
← →
AntiUser (2012-06-14 11:05) [0]Ситуация такая.
Сделал базовый класс:TBaseFrame = class(TFrame)
private
protected
public
end;
Создал еще фрейм (File > New > Frame - Delphi)
Задал имя фрейму FirstFrame
В юните соответственно получилTFirstFrame = class(TFrame)
private
{ Private declarations }
public
{ Public declarations }
end;
Изменил предка с TFrame на TBaseFrame
Все прекрасно компилируется и работает, но только до закрытия проекта. Как только пытаешься его открыть заново, получаешь ошибку
Error reading property и кнопки игнорировать и т.п.
Т.е. фактически дельфя преобразовывает фрейм в форму, после чего вся конструкция перестает работать.
При попытке создания фрейма получаю ошибки
Error reading ... Property ... does not exist.
Как правильно реализовать такой механизм?
(XE, Win7)
← →
KSergey © (2012-06-14 11:31) [1]Закройте проект, поменяйте еще и в DFM-файле предка, откройте проект заново
← →
AntiUser (2012-06-14 11:54) [2]Т.е. вы хотите что бы я в dfm"е указал вместо
object FirstFrame: TFirstFrame
Left = 0
Top = 0
Width = 470
Height = 340
object FirstFrame: TBaseFrame
Left = 0
Top = 0
Width = 470
Height = 340
Так?
Но так тоже не прокатывает.
← →
Rouse_ © (2012-06-14 11:58) [3]File->New->Other->Inheritable Items-> там увидишь список уже созданных фреймов, выбери тот от которого хочешь наследоваться.
← →
Омлет © (2012-06-14 12:15) [4]> AntiUser (14.06.12 11:54) [2]
Нет. Надо так:inherited FirstFrame: TFirstFrame
Но лучше не руками, а как сказано в [3].
← →
AntiUser (2012-06-14 12:23) [5]У меня нет там в списке базового класса. Видимо его тоже надо не просто написать, а создать как фрейм.
Сейчас попробую.
Хм... Получилось. Так заработало, только теперь надо переписать что было уже понаписано.
← →
AntiUser (2012-06-14 12:25) [6]
> Омлет © (14.06.12 12:15) [4]
Видимо проблема в том, что базовый класс был написан ручками, а не создан как фрейм.
Но я исходил из того, что в базовом не должно быть фрейма (dfm"а) его реализацией занимаются наследники. Пока не знаю как разрулится этот момент, что и в базовом фрейм и в наследнике фрейм.
← →
Омлет © (2012-06-14 12:46) [7]
> Пока не знаю как разрулится этот момент, что и в базовом
> фрейм и в наследнике фрейм.
По-моему, всё наследуется.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 1.113 c