Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

опции компилятора


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;

насчет установить - наверное не получится. Придется писать код в двух версиях. ИМХО


Наверх

Титульная страница Поиск, карта сайта Написать письмо