![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
переменная баг d7? [D7, WinXP]
cossak © (2007-06-23 20:02:00)обучаюсь дельфи поставил д7
на голой форме:label1-5.caption:= inttostr(q-y);и кнопку
на клик
var q,w,e,r,t,y:integer;
begin
label1..5(q..y)
первые две переменные не 0 с перезагрузкой д7 они разные.
т.е qw<>0 остальные 0
меняю местами var тоже самое первые две не 0 что захрень
ty<> не 0 ост. 0
почему?
может в настройках чего нить?
Anatoly Podgoretsky (2007-06-25 13:00:00) [1]Автор давно исчез, рыдает.
Инс (2007-06-25 12:58:00) [2]
> ты ошибся адресом в наезде
Виноват, счет тебя автором ;) Звиняй...
Правильный Вася (2007-06-25 12:08:00) [3]> Инс © (25.06.07 11:34) [11]
ты ошибся адресом в наезде
этот вопрос был автору, который в [0] чево-то там привел, похожее на код
Инс (2007-06-25 11:34:00) [4]
> а это вообще компилируется?
А должно? Купите себе любую книжку для новичков по Delphi или Turbo Pascal. А то на такие вопросы даже как-то неудобно отвечать.
Правильный Вася (2007-06-25 11:31:00) [5]
> label1-5.caption:= inttostr(q-y);
а это вообще компилируется?
Инс (2007-06-24 11:46:00) [6]
> Еще глобальные переменные и поля классов.
Да, только они никакого отношения к стеку не имеют. А вот про Variant верное замечание.
Юрий Зотов (2007-06-24 11:41:00) [7]> Инс © (23.06.07 21:00) [5]
Еще глобальные переменные и поля классов.
oxffff (2007-06-23 21:55:00) [8]
> Инс © (23.06.07 21:00) [5]
> Нулями инициализируются только переменные автоматически
> финализируемых типов - длинные строки, динамические массивы,
> интерфейсы.
Varaint забыл
Инс (2007-06-23 21:10:00) [9]С ассемблером знакомы? Чтобы понимать, почему так получается, что локальные переменные при входе в подпрограмму содержат мусор, нужно знать, что представляют собой локальные переменные и как они создаются. А происходит это вот как: локальные переменные живут в стеке. При входе в подпрограмму, указатель вершины стека смещается на величину, равную размеру блока локальных переменных. При этом тот мусор, что был в стеке до этого и становится содержимым локальных переменных. Для автоматически финализируемых типов, компилятор специально вставляет в пролог подпрограммы код инициализации, а в эпилог - код финализации. Вы все это можете увидеть сами. Поставьте брейкпоинт в начале подпрограммы, нажмите Ctrl+Alt+C и посмотрите какой код сгенерировал компилятор.
Инс (2007-06-23 21:00:00) [10]Нулями инициализируются только переменные автоматически финализируемых типов - длинные строки, динамические массивы, интерфейсы.
Юрий Зотов (2007-06-23 20:50:00) [11]> cossak © (23.06.07 20:02)
Это не баг, так и должно быть. С чего Вы решили, что переменная обязана быть равной нулю?
Плохиш (2007-06-23 20:19:00) [12]Детский сад на выезде, вернее, заезде на делфимастер...
Virgo_Style (2007-06-23 20:14:00) [13]насколько я смог разобраться в этом потоке слов, переменные не инициализируются
cossak (2007-06-23 20:11:00) [14]точнее наврал насчет перезагрузки сорри.
первая =4376880
вторая = 1243624
Может поможет.