![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DataModule и иже с ним...
Percent © (2006-08-29 15:31:00)Файл проекта:
library Conf;
uses
//...
unitConsoleDataModule in 'unitConsoleDataModule.pas' {CDM: TDataModule},
unitConfConsole in 'unitConfConsole.pas' {ConfConsole: TConfConsole},
//...
Файл unitConsoleDataModule:
unit unitConsoleDataModule;
interface
//...
type
TCDM = class(TDataModule)
{...}
end;
var
CDM: TCDM;
Файл unitConfConsole:
unit unitConfConsole;
interface
uses
Windows,{...} unitConsoleDataModule;
type
TConfConsole = class(TForm, {...})
{...}
constructor Create(Owner: TComponent); override;
end;
implemetation
constructor TConfConsole.Create(Owner: TComponent);
begin
CDM := TCDM.Create(Self);
inherited Create(Owner);
{...}
end;
В момент компиляции проекта возникает ошибка:
Module 'ConfConsole' links to module 'CDM' which cannot be found in the current project.
Do you wish to remove/redirect the links to another module?
Если ответить No, начинают сыпаться Access Violation с произвольных адресов.
Если ответить Yes, иногда (не всегда, порой - опять же Access Violation) предлагает список DataModule'й, в котором CDM присутствует, и при выборе его - опять то же сообщение, мол, не найден модуль CDM.
Если ответить Cancel - Сообщает, что не может дальше компилировать.
Уж и не знаю, с какой стороны подступиться...
Какие-то смутные неясные мысли по поводу того, что в проекте нет модулей 'ConfConsole' и 'CDM',
а есть 'unitConfConsole' и 'unitConsoleDataModule'. Но толку никакого...
Reindeer Moss Eater (2006-08-29 16:07:00) [1]Я бы на твоем месте проверил папки, перечисленные в Library Path у IDE и в свойствах проекта на предмет наличия в них старых версий модулей, перечисленных в uses всех модулей проекта.
Reindeer Moss Eater (2006-08-29 15:56:00) [2]>Дополнительный вопрос: почему он не "открывается" "автоматически"?
Вопрос бессмысленный, так как ошибка не в том, что модуль не открыт в IDE. Косяк в чем-то другом
Percent (2006-08-29 15:54:00) [3]Библиотеки суть проекты. :-)
Такое возможно.
Вопрос только в том, что сам датамодуль не "виден" до тех пор, пока его не откроешь визуально; в смысле - саму "форму" датамодуля, та, которая *.dfm. То есть , если датамодуль не открыт - система отказывается его видеть, говорит: из формы ConfConsole есть ссылки на несуществующие компоненты в CDM. Более того, говорит, мол, в объявлении класса TCDM указаны несуществующие компоненты, даже удалить их предлагает автоматически. Но ничего такого не происходит при открытой "форме" датамодуля. Дополнительный вопрос: почему он не "открывается" "автоматически"?
Anatoly Podgoretsky (2006-08-29 15:44:00) [4]Файл проекта:
library Conf;
uses
//...
unitConsoleDataModule in 'unitConsoleDataModule.pas'{CDM: TDataModule},
unitConfConsole in 'unitConfConsole.pas' {ConfConsole: TConfConsole},
Не уверен, что подобное возможно в файле библиотеки, а именно он у тебя, а не файл проекта.