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