Главная страница
    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.064 c
2-1341990007
sas9568635
2012-07-11 11:00
2013.03.22
Получение кода нажатых клавиш формы запущенной как Form.Show


15-1337202631
Германн
2012-05-17 01:10
2013.03.22
Подскажите инструмент


2-1340050503
ankazh
2012-06-19 00:15
2013.03.22
Отмена добавления новой записи


15-1346646304
AV
2012-09-03 08:25
2013.03.22
Когда окно максимизировано, оно меньше ресурсов ест?


15-1343831888
Begin_END_Begin
2012-08-01 18:38
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский