Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.082 c
15-1274185621
Lyonux
2010-05-18 16:27
2010.08.27
Прерывания int 21 и int 10


15-1272810608
antonn
2010-05-02 18:30
2010.08.27
Просьба прогнать тест еще раз :)


3-1221840469
andreoman
2008-09-19 20:07
2010.08.27
cxGridDBTableView, фокус и выделение ячейки


2-1273643101
Виктор
2010-05-12 09:45
2010.08.27
Динамический отбор по дате в базе данных


15-1268233355
zinetz_victor@yahoo.com
2010-03-10 18:02
2010.08.27
Кого надо убить, чтобы заработала удаленная отладка в D2010??





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский