Задать вопрос

Проблема с переменной в Delphi. Что делать?

Объявил в функции переменную типа boolean. Delphi ее видит, но при отладке пропускает все операции, с ней связанные, а также выдает сообщение, что мол эта переменная в программе не используется. Перезаписывал .exe файл, не помогло.
  • Вопрос задан
  • 465 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 6
bobrovskyserg
@bobrovskyserg
> мол эта переменная в программе не используется
Именно так, и память (или регистр) под неё не отводится.
Внимательно посмотрите свой код, возможно у вас сложное булево выражение, вычислимое во время компиляции - и все дела.
Ответ написан
@endemic
В VisualStudio при попытке дебага проекта, скомпилированного под релизной конфигурацией иногда были такие проблемы. Убедитесь, что вы используете дебаг-конфигурацию
Ответ написан
Комментировать
AlanDrakes
@AlanDrakes
Если Delphi сообщает, что переменная не используется, скорее всего, это так.
Компилятор чаще всего анализирует, есть ли обращения к данным внутри переменной и на результате этого анализа решает, нужна ли переменная в коде.
Пример1:
var
a: boolean;
<...>
begin
a:= false;
<...>
a:= true;
<...>
end;

Здесь к переменной не обращаются и она (с точки зрения компилятора) бесполезна.
Теперь так:
var
a: boolean;
<...>
begin
a:= false;
<...>
a:= true;
<...>
return a;
end;

А здесь значение переменной будет возвращено и ВСЕ операции с ней останутся.
Собственно, никак иначе.
Либо используйте переменную в коде, либо её удалит.
Ответ написан
Если влом искать, где отключить "оптимизацию", то попробуй влепить где-нить if(переменная=true) then inc(k);
что бы было какое-либо действие, зависящее от переменной, должен будет в итоге включить ее.
Ответ написан
Комментировать
@vilgeforce
Раздолбай и программист
А она вообще в программе используется?
Ответ написан
@Mercury13
Программист на «си с крестами» и не только
Если она так нужна — в настройках компиляции отключи оптимизацию.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы