![]() |
|
|
#1
|
|||
|
|||
![]() Создал DataModule.bpl, в котором модуль называется "DM"
В моём проекте два модуля bpl, которые используют модуль DM. Добавил DataModule.dcp в requires модулей. Пытаюсь сбилдить проект, выдаёт ошибку Код:
Undeclared identifier 'DM' |
#2
|
|||
|
|||
![]() не пойму, в каком месте нужно объявлять DM и переменные, чтобы они были видны другим модулям.???
Код:
unit UDataModule; interface uses Windows, Messages, SysUtils,Classes,Dialogs, DB, ADODB, IniFiles; type TExecuteModal = procedure; TFamilyName = function:string; TPluginName = function:string; TDM = class(TDataModule) Query: TADOQuery; DataSet: TADODataSet; procedure DataModuleCreate(Sender: TObject); private public end; procedure LoadPlugin(PlName:String; H:HWND); const MY_MESSAGE = WM_USER + 1; var DM: TDM; // ParentHandle:HWND; //Ãëîáàëüíûå ïåðåìåííûå äëÿ ëîãèíà ïîëüçîâàòåëÿ Employee_Key:Cardinal; Employee_Id:Cardinal; Employee_Pass, Employee_Name1, Employee_Name2, Employee_Name3:string; Logon_Key:Cardinal; implementation {$R *.dfm} |
#3
|
|||
|
|||
![]() вот это решение не помогает: http://www.delphimaster.net/view/1-1088655081/all
|
#4
|
|||
|
|||
![]() Ну в том юните , где
Undeclared identifier 'DM' нужно добавить uses UDataModule; А в самом UDataModule.pas вроде всё правильно. |
Этот пользователь сказал Спасибо icWasya за это полезное сообщение: | ||
sorockinalex (04.09.2012)
|
#5
|
|||
|
|||
![]() Цитата:
Оказывается, если в requires добавлено, то в uses имя .pas файла надо указывать (UDataModule), а не имя модуля - DataModule... Последний раз редактировалось sorockinalex, 04.09.2012 в 16:29. |
#6
|
||||
|
||||
![]() Цитата:
![]() |
#7
|
|||
|
|||
![]() Вот ещё возникла проблемка:
В этом bpl дата-модуле лежит Ado Query.. При загрузке приложения вылетает окошко с логином, проверяется логин и пароль в базе данных. Всё работает! Далее пытаюсь открыть другой модуль, в котором происходит доступ к этому Query, но вылетает ошибка. Понял так, что из-за того, что он (Query) кем-то занят.. Попробовал просто второй раз запустить модуль логина - то же самое. Второй раз достучаться до Query невозможно... Хотя в коде есть освобождение запроса: Код:
DM.Query.Close; DM.Query.Active:=False; DM.Query.Free; |
#8
|
|||
|
|||
![]() Так заработало.. странно, зачем я освобождал...
Код:
//DM.Query.Close; DM.Query.Active:=False; //DM.Query.Free; |