![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема после перевода проекта из Дельфи 6 в Дельфи 2007. [D6, D2005]
Abcdef123 © (2010-04-09 10:07:00)Здравствуйте, Мастера!
Перевела несколько проектовиз Дельфи 6 в Дельфи 2007, НО только в одном возникла проблема. При компиляции ругается на датамодуль проекта "DMMain", выдает сообщение: Field DMMain.DMMain does not have a corresponding component. Remove the declaration? Если отвечаю нет, но компилится нормально и проект работает. Решить эту проблему все же надо, так как эта ошибка каждый раз выскакивает при компиляции. Надоедает.
Отвечать "удалить" нельзя - в этом случае удаляет объявление переменной DMMain : TDMMain; что естественно делает проект нерабочим.
Про этот тип ошибки прочла много инфы в инете,и хелп, но в моей ситуации это не помогло. Вот думаю, неужели придется вручную весь датамодуль создавать (каждый компонент вручную набрасывать, свойства прописывать и методы)? Это огромная работа!
Может кто-то встречался с подобной проблемой насчет датамодуля и как решили эту проблему?Ведь странно то, что если в настройке дельфи2007 что-то отсутствует, в этом случае и другие проекты выдавали бы ошибку. То есть по логике вроде выходит, что ошибка именно в проекте, а не среде дельфи, правильно я понимаю?Заранее спасибо,
Надежда
Abcdef123 (2010-04-13 04:20:00) [1]>Омлет © (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. Исправлюсь!
Всем большое спасибо!
Тынц (2010-04-12 12:15:00) [2]Так что,я сначала объявила тип
TNotesStateChange: Procedure(Sender: TObject)of Object;
Этот тип называется TNotifyEvent, не надо изобретать велосипед.
Омлет (2010-04-12 11:56:00) [3]А причем тут DMMain?
Abcdef123 (2010-04-12 07:14:00) [4]Спасибо всем открикнувшимся! Я попробовала все предложенные вами советы-мнения, но, до посылки исходников не дошло, как тут предложили.
Я нашла в чем причина была, чему я очень рада! Напишу здесь на всякий случай, может кому пригодится (хотя возможно многие это знают, в отличие от меня).
Ошибка былав разделе паблик переменных данного модуля в строке:
NotesStateChange: Procedure(Sender: TObject)of Object;
В Дельфи 6 это работает, а вот в Дельфи 2007 это не вопринимает. Так что,я сначала объявила тип
TNotesStateChange: Procedure(Sender: TObject)of Object;
а уж потом объявила переменную
NotesStateChange: TNotesStateChange;
И ругаться перестало при компиляции.
Ура!
_Юрий (2010-04-09 15:41:00) [5]Имя юнита - также DMMain?
icWasya (2010-04-09 13:47:00) [6]Приведи текст интерфейсной части модуля и *.dfm
Короче - код в студию
Anatoly Podgoretsky (2010-04-09 12:55:00) [7]> Abcdef (09.04.2010 12:23:04) [4]
Могу предположить, что несоответвует pas и dfm файлы.
Если в TDMMain нет компонента с именем DMMain, то возможно он есть в dfm
Leonid Troyanovsky (2010-04-09 12:33:00) [8]
> Abcdef123 (09.04.10 10:07)
> "DMMain", выдает сообщение: Field DMMain.DMMain does not
> have a corresponding component
А если переименовать модуль или переменную?
--
Regards, LVT.
Abcdef (2010-04-09 12:23:00) [9]> Anatoly Podgoretsky © (09.04.10 11:59) [3]
Такого сочетания в тексте программы даже нет! Это так выдает сообщение об ошибке. А сам модуль объявлен так:
type
TDMMain= class(TDataModule)
.....здесь лист компонентов (таблицы, датасеты), процедур и пр , которые в этом типе (датамодуле)
.....
И затем строка
var
DMMain : TDMMain;
Anatoly Podgoretsky (2010-04-09 11:59:00) [10]> Abcdef (09.04.2010 11:08:02) [2]
Приведи строчку, где указан DMMain.DMMain из того модуля где ругается и ее объявление в DMMain
Abcdef (2010-04-09 11:08:00) [11]To [1]. TDMMain - это Датамодуль. Я так понимаю, что это нельзя назвать компонентом. Как вы себе представляете установить датамодуль?
Может я что-то не понимаю из вашего сообщения? Поясните, плз.
Дмитрий Белькевич (2010-04-09 11:00:00) [12]Не установлена компонента TDMMain.