Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизПроблема после перевода проекта из Дельфи 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.062 c