![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему один пакет не видит, что в другом пакете есть класс?
Kolan © (2007-07-13 10:40:00)Здравствуйте,
В пакете А, в requires, указан пакет Б. В пакете Б класс есть класс TMyClass.
Добавляю в модуль из пакета А модуль пакета Б где лежит TMyClass компилится.
В модуле пакета А пишу:TMyClass говоритUndeclared identifier: 'TMyClass'. Делаю Ctrl + Click на модуле пакета Б вижу класс есть.
Почему он не видит класс?
ЗЫ
С други пакетом, все нормально :(
Kolan (2007-07-13 13:59:00) [1]> я бы не стала компилировать такой код
Ну как оптимизация/не оптимизация может исправить ошибку «хз что за идентификатор Synchronize»
Да лана(да простит меня Игорь Шевченко), что говорить глюк и все
Сергей М. (2007-07-13 13:52:00) [2]
> Причём этот Error он не в Messages(внизу) появляется, а
> там где Structure
Ну а репу почесать пробовал ?)
Я не знаю что там в этом хваленом BDS творится, но судя по этому "бардаку" уккщк тот следует расценивать как предупреждениесреды след.плана :
идентификатор не объявлен, и если бы не моя "продвинутая оптимизация" (ид-р упомянут, но фактически в дальнейшем коде никак не используется и соотв-но не влияет на генерацию результ.кода), я бы не стала компилировать такой код, но в данном случае милостиво закрываю на это глаза
Kolan (2007-07-13 13:46:00) [3]> Да Error это.
Причём этот Error он не в Messages(внизу) появляется, а там где Structure.
> Фтопку такой компайлер)
Кому как я вот D7 нанавидеть начинаю потихоньку, после возврашения с BDS
Сергей М. (2007-07-13 13:43:00) [4]
> Error это
> притом нормально компилирует
Фтопку такой компайлер)
Kolan (2007-07-13 13:41:00) [5]> Не может он именно так говорить !
Прислать скриншот? Да Error это.
> почуму пишется раздельно.
И впрямь :)
Anatoly Podgoretsky (2007-07-13 13:26:00) [6]> Kolan (13.07.2007 13:21:16) [16]
почуму - пишется раздельно.
Сергей М. (2007-07-13 13:26:00) [7]
> Говорит undiclared identifier Synchrinize
Не может он именно такговорить !
Это м.б. либо Error, либо Hint, либо Warning.
А то что ты привел совершенно безлико, поэтому "ругательством" это при всем желании назвать нельзя.
Kolan (2007-07-13 13:21:00) [8]> «Подчеркивает» «ругается».
Как разтаки равно.
Говоритundiclared identifier Synchrinize. И притом нормально компилирует
:)
> Ну если там для тебя ничего нет, то и разговора нет.
Там много всего интересного, но ответа на вопрос «почуму ругается именно в пакете?» там нет.
Сергей М. (2007-07-13 13:00:00) [9]
> Kolan © (13.07.07 12:56) [14]
> BDS его просто подчеркивает если он в пакете
"Подчеркивает" <> "ругается".
> Ну и что там?
Ну если там для тебя ничего нет, то и разговора нет.
Kolan (2007-07-13 12:56:00) [10]> А исходники в classes.pas ?
Ну и что там? BDS его просто подчеркивает если он в пакете. Кроме того часто не работает CodeInsite Такого плана «странностей» много, вот я и пугаюсь :)
Сергей М. (2007-07-13 12:43:00) [11]
> Думаю ничего
Как это "нечего" ?!
А исходники в classes.pas ?
Или ты не о соотв.методе TThread ?
Kolan (2007-07-13 11:54:00) [12]> матчасти
А что можно почитать из мат части по поводу ругани на Synchronize в пакете причем все компилируется. Думаю ничего
Игорь Шевченко (2007-07-13 11:45:00) [13]
> Я почему-то от пакетов ожидаю всяких гадостей… сам незнаю
> почему.
И все-таки, неужели форум заменяет чтение матчасти ?
Kolan (2007-07-13 11:42:00) [14]> Я тоже не знаю, что ты их так боишься)
ХЗ, например пугает, то что часто BDS все поддеркивает красным, и ругается, но при этом все правильно, все компилится и все работает
Сергей М. (2007-07-13 11:08:00) [15]
> почему-то от пакетов ожидаю всяких гадостей… сам незнаю
> почему
Я тоже не знаю, что ты их так боишься)
Принципы Паскаля едины для любого Делфи-проекта)
Kolan (2007-07-13 11:04:00) [16]> Ну так ведь в юните KMicroTestFormCommandsUnit идентификатор
> «TShowDeviceSettingsCommand» объявлен отнюдь не в интерфейсном
> разделе !
Млин, описался действительно сам дурак.
ЗЫ
Я почему-то от пакетов ожидаю всяких гадостей сам незнаю почему.
Благодарю. :)
Сергей М. (2007-07-13 11:02:00) [17]
> Kolan © (13.07.07 10:58) [5]
Ну так ведь в юните KMicroTestFormCommandsUnit идентификатор "TShowDeviceSettingsCommand" объявлен отнюдь не в интерфейсном разделе !
Чего ж тебе тогда надобно, старче, если ты не обеспечил для него глобальной области видимости, каковой обладают только интерфейсные разделы юнитов в составе проекта ?
Kolan (2007-07-13 10:59:00) [18]> [4] Kolan © (13.07.07 10:56)
Причем если убрать обращение к классу, что компилится все ок. и не выдает предупреждений никаких
Kolan (2007-07-13 10:58:00) [19]> В упор не вижу
В пакете A:
unit KMicroTesterDeviceColleagueUnit;
interface
uses
KMicroTestFormCommandsUnit
implementation
if Command isTShowDeviceSettingsCommandthen
begin
end;
В пакете B:
unit KMicroTestFormCommandsUnit;
interface
uses
KCustomCommand;
implementation
type
TShowDeviceSettingsCommand= class(TCustomShowCommand)
public
function CommandName: string; override;
end;
Kolan (2007-07-13 10:56:00) [20]Кстати при первом Ctrl + Click выдаётся:
Could not compile package ''
При втором:
E2225 Never-build package '' must be recompiled
А при третьем отрывается Модуль из пакета B.
И C и D тоже в requires пакета А, как и пакет B.