Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Проблема после перевода проекта из Дельфи 6 в Дельфи 2007.   Найти похожие ветки 

 
Abcdef123   (2010-04-09 10:07) [0]

Здравствуйте, Мастера!
Перевела несколько проектовиз Дельфи 6 в Дельфи 2007, НО только в одном возникла проблема. При компиляции ругается на датамодуль проекта "DMMain", выдает сообщение: Field DMMain.DMMain does not have a corresponding component. Remove the declaration? Если отвечаю нет, но компилится нормально и проект работает. Решить эту проблему все же надо, так как эта ошибка каждый раз выскакивает при компиляции. Надоедает.
Отвечать "удалить" нельзя - в этом случае удаляет объявление переменной DMMain : TDMMain; что естественно делает проект нерабочим.
Про этот тип ошибки прочла много инфы в инете,и хелп, но в моей ситуации это не помогло. Вот думаю, неужели придется вручную весь датамодуль создавать (каждый компонент вручную набрасывать, свойства прописывать и методы)? Это огромная работа!
Может кто-то встречался с подобной проблемой насчет датамодуля и как решили эту проблему? Ведь странно то, что если в настройке дельфи2007 что-то отсутствует, в этом случае и другие проекты выдавали бы ошибку. То есть по логике вроде выходит, что ошибка именно в проекте, а не среде дельфи, правильно я понимаю?Заранее спасибо,
Надежда


 
Дмитрий Белькевич   (2010-04-09 11:00) [1]

Не установлена компонента TDMMain.


 
Abcdef   (2010-04-09 11:08) [2]

To [1]. TDMMain - это Датамодуль. Я так понимаю, что это нельзя назвать компонентом. Как вы себе представляете установить датамодуль?
Может я что-то не понимаю из вашего сообщения? Поясните, плз.


 
Anatoly Podgoretsky ©   (2010-04-09 11:59) [3]

> Abcdef  (09.04.2010 11:08:02)  [2]

Приведи строчку, где указан DMMain.DMMain из того модуля где ругается и ее объявление в DMMain


 
Abcdef   (2010-04-09 12:23) [4]

> Anatoly Podgoretsky ©   (09.04.10 11:59) [3]
Такого сочетания в тексте программы даже нет! Это так выдает сообщение об ошибке. А сам модуль объявлен так:
type
 TDMMain= class(TDataModule)
.....здесь лист компонентов (таблицы, датасеты), процедур и пр , которые в этом типе (датамодуле)
.....
И затем строка
var
 DMMain : TDMMain;


 
Leonid Troyanovsky ©   (2010-04-09 12:33) [5]


> Abcdef123   (09.04.10 10:07)  

> "DMMain", выдает сообщение: Field DMMain.DMMain does not
> have a corresponding component

А если переименовать модуль или переменную?

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2010-04-09 12:55) [6]

> Abcdef  (09.04.2010 12:23:04)  [4]

Могу предположить, что несоответвует pas и dfm файлы.
Если в TDMMain нет компонента с именем DMMain, то возможно он есть в dfm


 
icWasya ©   (2010-04-09 13:47) [7]

Приведи текст интерфейсной части модуля и *.dfm
Короче - код в студию


 
_Юрий ©   (2010-04-09 15:41) [8]

Имя юнита - также DMMain?


 
Abcdef123   (2010-04-12 07:14) [9]

Спасибо всем открикнувшимся! Я попробовала все предложенные вами советы-мнения, но, до посылки исходников не дошло, как тут предложили.
Я нашла в чем причина была, чему я очень рада! Напишу здесь на всякий случай, может кому пригодится (хотя возможно многие это знают, в отличие от меня).
Ошибка былав разделе паблик переменных данного модуля в строке:
  NotesStateChange: Procedure(Sender: TObject)of Object;

В Дельфи 6 это работает, а вот в Дельфи 2007 это не вопринимает. Так что,я сначала объявила тип
   TNotesStateChange: Procedure(Sender: TObject)of Object;

а уж потом объявила переменную
   NotesStateChange: TNotesStateChange;

И ругаться перестало при компиляции.
Ура!


 
Омлет ©   (2010-04-12 11:56) [10]

А причем тут DMMain?


 
Тынц   (2010-04-12 12:15) [11]

Так что,я сначала объявила тип
  TNotesStateChange: Procedure(Sender: TObject)of Object;


Этот тип называется TNotifyEvent, не надо изобретать велосипед.


 
Abcdef123   (2010-04-13 04:20) [12]

>Омлет ©   (12.04.10 11:56) [10]
В том то и дело, что сам текст сообщения-ошибки запутывал ситуацию, ну а в принципе DMMain причем, так как это строка часть этого DMMain, объявлена как прайвит переменная модуля.
TDMMain= class(TDataModule)
.....здесь лист компонентов (таблицы, датасеты), процедур и пр , которые в этом типе (датамодуле)
.....
private
 TNotesStateChange: Procedure(Sender: TObject)of Object;  
end;

>Тынц   (12.04.10 12:15) [11]
Вы правы, большое спасибо! Просто это старый код, написанный не мной, поэтому стараюсб менять в том же стиле, и вот упустила из вида эту замену на TNotifyEvent. Исправлюсь!

Всем большое спасибо!



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.172 c
15-1268385262
Jeer
2010-03-12 12:14
2010.08.27
Нас посчитали


2-1265554936
nordic3
2010-02-07 18:02
2010.08.27
вертикальная синхронизация в OpenGL


2-1272205654
romario
2010-04-25 18:27
2010.08.27
Работа с текстовым файлом


2-1267552320
HRustBB
2010-03-02 20:52
2010.08.27
Виртуальный диск с источником FTP


15-1274158658
oldman
2010-05-18 08:57
2010.08.27
Встроенные функции в Excel. Можно ли посмотреть их код?