Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2009, 10:46   #1
dextering
Новичок
Джуниор
 
Регистрация: 14.06.2009
Сообщений: 12
По умолчанию компилятор игнорирует переменные, объясните

привет, написал базу данных.до сегодняшнего дня все работало.
сегодня.
добавляю в процедуру - любую, любой другой программы -
var i:real;

begin
i:=100;// вот тут проблема - пишет что i нигде не используется и соответсвенно не присваивает переменной значение 100, ну или любое другое значение.
end;
dextering вне форума Ответить с цитированием
Старый 14.06.2009, 11:00   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Всё верно. Delphi производит оптимизацию кода. Если переменная нигде не используется то зачем она нужна?

Можно отключить оптимизацию: Project->Options...->Compiler->Optimization
_Dmitry вне форума Ответить с цитированием
Старый 14.06.2009, 11:08   #3
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
По умолчанию

ну ответ на свой вопрос ты написал в самом вопросе

Цитата:
пишет что i нигде не используется и соответсвенно не присваивает переменной значение
если переменная используется для счетчика цыкла - то она иницыализируется в самом цыкле

Код:
for i:=0 to 100 do
в таком случае безсмысленно чтото присваивать переменной перед этим цыклом.. так как он нидлячего не нужно.. также бессмыслено присваивать значение переменной, если она вобще нигде не исполдьзуется..

но если всетаки хочется это сделать то сделай так:

Код:
i:=100;
if i<>100
  then i:=100;
теперь у тебя i исполльзуется в проверке.. и ей будет присвоено значение..
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"
Ntlegend вне форума Ответить с цитированием
Старый 14.06.2009, 11:09   #4
dextering
Новичок
Джуниор
 
Регистрация: 14.06.2009
Сообщений: 12
По умолчанию

да это я понимаю, НО сохранять то в этой переменной значение компилятор должен, НО он этого не делат

простая процедура в любой программе

procedure t1;
var i:real;
begin
i:=100;
тут точка останова программы, смотрю вочером,i=много много цифр, это не правильно, компилятор не увидел присвоение переменной значения
end;
dextering вне форума Ответить с цитированием
Старый 14.06.2009, 11:11   #5
dextering
Новичок
Джуниор
 
Регистрация: 14.06.2009
Сообщений: 12
По умолчанию

вчера все работало, сегодня не могу ни в одной своей старой программе добавить переменные, просто не присваивается им знаение и все. в тупике
dextering вне форума Ответить с цитированием
Старый 14.06.2009, 11:30   #6
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

отключите оптимизатор
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 14.06.2009, 11:38   #7
dextering
Новичок
Джуниор
 
Регистрация: 14.06.2009
Сообщений: 12
По умолчанию

хм. оптимизатор сам включится может в delphi?
странно все как то
dextering вне форума Ответить с цитированием
Старый 14.06.2009, 11:39   #8
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Почему странно ? у вас некорректный код и Delphi его оптимизирует, чем же вы не довольны ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 14.06.2009, 11:40   #9
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
По умолчанию

dextering, ау тебя кнопка "ПРАВКА" не видна шоли?? пользуйся ею.. и еще.. почитай то что тебе написали я и _Dmitry и попробуй чтото из этого сделать.. а не в тупую кричать на форуме шо не получается.. это форум програмистов а не чат флудеров всетаки.. имей уважение к остальным..

если есть вопросы по коду - то выкладывай код и задавай к нему вопрос..

Цитата:
раньше. т.е. вчера, позавчера и еще год назат переменным нормально присваивались значения
вчера, позавчера, год назад.. и даже 4 года назад делфи оптимизировало код.. и пустые не используемые переменные не иницыализировало.. может быть паскаль и иницыализировал.. но не делфи
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"

Последний раз редактировалось Ntlegend; 14.06.2009 в 11:52.
Ntlegend вне форума Ответить с цитированием
Старый 14.06.2009, 11:44   #10
dextering
Новичок
Джуниор
 
Регистрация: 14.06.2009
Сообщений: 12
По умолчанию

эм, ребят, ну как бы я уже написал диплом
и сейчас его редактирую. раньше. т.е. вчера, позавчера и еще год назат переменным нормально присваивались значения, я в опции вообще не залазил. а тут такой конфуз. читаю внимательно, мне записку сдавать в понедельник, а тут такое. как не покричать то
dextering вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компилятор Avel Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 27.11.2008 18:14
Компилятор Лубышев Помощь студентам 7 15.10.2008 18:53
Компилятор С++ Sanek_ntsk Свободное общение 1 09.01.2008 19:14
Компилятор Simply-Art Свободное общение 1 22.09.2007 11:07
компилятор ZhekON Общие вопросы Delphi 6 13.09.2007 18:00