![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Директива $IFDEF [D5, Win2k]
first_may © (2006-11-08 11:54:00)Добрый день!
У меня есть некоторый модуль Test.pas, который я использую в нескольких проектах. В одном из проектов мне надо в модуль Test.pas подключит дополнительный модуль Proba.pas таким образом, что бы другие проекты нормально компилировались с учетом того, что в них нет этого Proba.pas. Я делаю так
implementation
{$IFDEF Proba.dcu}
uses Proba;
{$ENDIF}
...
{$IFDEF Proba.dcu}
... // здесь функция из модуля Proba.pas
{$ENDIF}
Правильно ли я делаю?
first_may (2006-11-08 15:45:00) [21]не вижу ошибки...
Плохиш (2006-11-08 15:45:00) [22]Рыдал....
evvcom (2006-11-08 15:37:00) [23]> [20] first_may © (08.11.06 15:35)
языка. А язык Паскаль называется или Object Pascal.
first_may (2006-11-08 15:35:00) [24]Основ чего?
Плохиш (2006-11-08 15:25:00) [25]
> implementation
>
> usesMainVar, Base;
>
> {$IFDEF Proba.dcu}
> usesProba;
> {$ENDIF}
Я догадывался :-) Не буду я ему ничего говорить, пока не изучит основ.
Ketmar (2006-11-08 14:57:00) [26]а дятлы всё долбили легированую сталь...
first_may (2006-11-08 14:54:00) [27]вот кусок кода Test.pas:
...
implementation
uses MainVar, Base;
{$IFDEF Proba.dcu}
uses Proba;
{$ENDIF}
ниже идет процедура
procedure ...
begin
...
{$IFDEF Proba.dcu}
... // здесь функция из модуля Proba.pas
{$ENDIF}
...
end;
прописал в
Project->Options->Directories/Conditionals->Conditional Defines
Proba.dcu
после всего этого, функция внутри из модуля Proba.pas не вызывается.
Anatoly Podgoretsky (2006-11-08 14:52:00) [28]> icWasya (08.11.2006 14:14:15) [15]
Может стоит сначала от точки избавиться, имя идентификатора не может включать точку, логически здесь получается модуль Proba в нем идентификатор dcu
Поскольку за это время он ни разу не прислушался к данной рекомендации, то надо просто прекратить отвечать и ждать, ждать, ждать
icWasya (2006-11-08 14:14:00) [29]first_may © (08.11.06 12:39) [10]
>теперь при компиляции говорит
>[Error] Vocabses.pas(127): Declaration expected but 'USES' found
а какой текст вокруг
{$IFDEF Proba.dcu}
uses Proba;
{$ENDIF}
? - приведи пару строчек до и после
Anatoly Podgoretsky (2006-11-08 14:07:00) [30]> first_may (08.11.2006 13:16:13) [13]
Чего не надо, не говори загадками
first_may (2006-11-08 13:16:00) [31]не надо было писать?
Anatoly Podgoretsky (2006-11-08 12:56:00) [32]> first_may (08.11.2006 12:39:10) [10]
Точка не смущает тебя?
Плохиш (2006-11-08 12:52:00) [33]
> теперь при компиляции говорит
> [Error] Vocabses.pas(127): Declaration expected but 'USES'
> found
У тебя синтаксическая ошибка в коде.
PS. Сдержался...
first_may (2006-11-08 12:39:00) [34]прописал в
Project->Options->Directories/Conditionals->Conditional Defines
модуль
Proba.dcu
теперь при компиляции говорит
[Error] Vocabses.pas(127): Declaration expected but 'USES' found
Anatoly Podgoretsky (2006-11-08 12:31:00) [35]> а где связь с юнитом?
Дык смотри первый IF
Anatoly Podgoretsky (2006-11-08 12:30:00) [36]> first_may (08.11.2006 12:18:03) [3]
> А вот это зачем:
Для того чтобы у тебя останавливалось внутри блока
Anatoly Podgoretsky (2006-11-08 12:29:00) [37]> Плохиш (08.11.2006 12:06:01) [1]
> Да. А что смущает?
Наверно точка
Плохиш (2006-11-08 12:28:00) [38]
> first_may © (08.11.06 12:26) [5]
> именно подчеркивание? а где связь с юнитом?
Директивы компилятора никакне связаны с какими-то там юнитами, это как "котлеты отдельно и мухи отдельно"
PS. Сдержался :-)
first_may (2006-11-08 12:26:00) [39]именно подчеркивание? а где связь с юнитом?
Плохиш (2006-11-08 12:21:00) [40]
> first_may © (08.11.06 12:18) [3]
> А вот это зачем:
А чтобы определить директиву Proba_dcu для компилятора.