Мелочь, но бесит
Заранее благодарен.
Господа не подскажите как в Delphi сделать так чтобы компилятор компилировал (простите за тафталогию) те строки, в которых есть "нигде неиспользуемые переменные".
Заранее благодарен.
А он разве их не компилирует? Ты, похоже, "не" забыл написать. Ну да ладно. Тебя ворнинги бесят? Или что?
Оффтоп: Гы. Лучший способ A:=A;
А он разве их не компилирует? Ты, похоже, "не" забыл написать. Ну да ладно. Тебя ворнинги бесят? Или что?
Оффтоп: Гы. Лучший способ A:=A;
Просто случаются ситуации когда нужно что-то посмотреть (значение переменной). Ну для примера, допустим я хочу посмотреть, что мне возвращает какая-то функция:
A:=func(...); Далее у меня А нигде не используется и в окне наблюдателя ее значение я посмотреть не могу
Просто случаются ситуации когда нужно что-то посмотреть (значение переменной). Ну для примера, допустим я хочу посмотреть, что мне возвращает какая-то функция:
A:=func(...); Далее у меня А нигде не используется и в окне наблюдателя ее значение я посмотреть не могу
А объявлена не глобально? Вообще, я был бы весьма признателен, если бы ты показал кусок кода и сказал, вот это вот здесь мне не нравится. Ок?
А объявлена не глобально? Вообще, я был бы весьма признателен, если бы ты показал кусок кода и сказал, вот это вот здесь мне не нравится. Ок?
Ну вот напримр простой откли на нажатие клавиши:
procedure TForm1.Button1Click(Sender: TObject);
Var
D:word;
begin
D:=((5*67) and $1234)shr 3;
end;
Когда идешь по шагам (F7) на строчке D:=((5*67) and $1234)shr 3; трассировщик вообще не останавливатся, и следовательно я не могу в окне наблюдателя посмотреть значение переменной, но если сделать так:
procedure TForm1.Button1Click(Sender: TObject);
Var
D:word;
begin
D:=((5*67) and $1234)shr 3;
label1.Caption:=IntToStr(D);
end;
Все будет нормально,потому что D далее используется в коде программы. Так вот как сделать так, чтобы в первом случае трассировщик останавливался на строке:
D:=((5*67) and $1234)shr 3;
и я бы мог посмотреть значние переменной D в окне наблюдателя?
procedure TForm1.Button1Click(Sender: TObject);
Var
D:word;
begin
D:=((5*67) and $1234)shr 3;
end;
Переменную объявлять совсем необязательно.
Доходишь до нужной строчки кода, далее давишь Ctrl+F7, вылетает окно "Evaluate, Modify". Вводишь интересующее тебя выражение, например, ((5*67) and $1234)shr 3, и смотришь результат. Точно так же можно получить результат вычисления функции.
:D Ребята из Борланда просто напросто так пытаются оптимизировать код и выбрасывают неиспользуемые строчки, уменьшая тем самы размер. Сам сталкивался с этой проблемой)) действительно бесит)) Я просто ставил за нужной строчкой код типа d := d + d; и "глупый" компилятор прожёвывал это. Либо, если тебе нужна эта переменная в дальнейшем, заведи ещё какую-нибудь переменную дял отладки да и присваиваей ей нашу переменную.
В принципе я так и делал. Просто подумал, что может быть где-то есть опция, сняв которую... Оказывается нет.:)
В принципе я так и делал. Просто подумал, что может быть где-то есть опция, сняв которую... Оказывается нет.:)
Есть такая опция. "Show hints" называется. Смотри в свойствах проекта.