![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
опции компилятора
vasa777 © (2012-10-22 20:24:00)есть некий проект, со своими опциями компилятора.
в проект добавляется мой модуль (и не только модуль, но еще и куски кое где в разные модули чужие). что нужно: можно ли в коде узнать, включена ли нпример деректива I ({I+}) и после выполнения моего куска кода вернуть этой дерективе то значение которое у нее было?
например
{тут определяем какое заначение у I}*
{I+} // делаем какое надо нам
// тут код
{тут возвращаем I значение взятое в *, если надо}
Dmitriy (2012-10-23 08:40:00) [1]
{$IFOPT I+}
{$DEFINE ION}
{$I-}
{$ENDIF}
//здесь ваш щастливый код
{$IFDEF ION}
{$I+}
{$UNDEF ION}
{$ENDIF}
vasa777 (2012-10-22 21:41:00) [2]спасибо всем
Плохиш (2012-10-22 21:02:00) [3]
> насчет установить - наверное не получится.
Использовать define и undefine
AV (2012-10-22 21:02:00) [4]не, не работает :)
значит, только так
{$I+}
s := '---';
{$IFOPT I+}
s := '+++';
{$ENDIF}
ShowMessage(s);
{$I-}
s := '---';
{$IFOPT I+}
s := '+++';
{$ENDIF}
ShowMessage(s);
{$I+}
s := '---';
{$IFOPT I+}
s := '+++';
{$ENDIF}
ShowMessage(s);
Германн (2012-10-22 20:58:00) [5]
> но еще и куски кое где в разные модули чужие
Не делай так. Держи весь свой код в своем модуле. Тогда и проблем с опциями не будет.
AV (2012-10-22 20:47:00) [6]function TForm1.GetI: Boolean;
begin
result := False;
{$IFOPT I+}
result := true;
{$ENDIF}
end;
насчет установить - наверное не получится. Придется писать код в двух версиях. ИМХО