Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
Время: 0.061 c
2-1332577830
Pcrepair
2012-03-24 12:30
2013.03.22
TStringList и перевод символов в нижний регистр


15-1345901388
Фокс Йожин
2012-08-25 17:29
2013.03.22
Картина


3-1278782038
TechnoDreamer
2010-07-10 21:13
2013.03.22
DBX Error: Unsupported field type


15-1347984690
Rouse_
2012-09-18 20:11
2013.03.22
Неспешно начинаю организовывать КМП


15-1331419316
Дмитрий С
2012-03-11 02:41
2013.03.22
Шифрование диска. Теоретический вопрос.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский