Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Delphi in Design-time  (Прочитано 7782 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Chel
Гость
« : 17-02-2004 10:08 » 

Привет всем. Люди помогите разобраться. Появилась такая проблема.
Есть класс Tbrowser наследник  от Tframe. От него создан класс TfrmPAC = class(TBrowser) в котором перегружены некоторые  процедуры. Дальше был создан класс
TFramePACs = class(Tframe), который в себе содержит на PageControl 9 объектов класса TfrmPAC. Дальше была создана форма(FrmInsuranceCardBase) на которой лежит объект типа TFramePACs.
Теперь о сложившейся проблеме. Если в делфи открывать сразу FrmInsuranceCardBase то появляется ошибка “class TFramePACs not found”, а затем “class TfrmPAC not found”, помогает только открытие вначале фрейма TfrmPAC. А потом всего остального. Дальше если открыть эти три класса(TfrmPAC, TFramePACs, FrmInsuranceCardBase) и начать просто перемещать мышкой фрейм TfrmPAC вылетает сообщение “A component namrd tlbar already exists”. Tlbar это TtoolBar, который лежит  во фрейме Tbrowser. И дальше при попытке скопилить выдается ошибка : [Error] RLINK32: Error opening file "BrowserFrame.dfm".
Как с этим бороться?
Заранее спасибо.
Записан
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #1 : 17-02-2004 12:36 » new

попробуй перед всеми объявлениями объявить все классы, как forvard. т.е.

Код:

type
  Tbrowser = class;
  TfrmPAC = class;
  TFramePACs = class;


и убедись, что в FrmInsuranceCardBase модуль, в котором объявлены эти три класса объявлен в interface-секции uses, а не в implementation.
Записан

Chel
Гость
« Ответ #2 : 19-02-2004 12:14 » 

При попытки вставить описание  forward классов вылазит такая ошибка
[Error] InsuranceCardBase.pas(13): Type 'TFramePACs' is not yet completely defined
Жаль
Записан
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #3 : 19-02-2004 14:58 » 

Chel, это означает, что на момент компиляции InsuranceCardBase, он не успевает добраться до полного объявления TFramePACs. ты уверен, что модель, в котором объявлены твои классы лежит в "верхнем" uses, а не в разделе implementation, куда он прописывается по Alt+F11 или автоматически?

сможешь привести текст обоих модулей? или сбросить на почту? (x77@pisem.net)
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines