Форум: "Основная";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];
ВнизПочему выполняются не все команды? Найти похожие ветки
← →
Юлия (2003-08-25 09:36) [0]var
p:ttreenode;
m:integer;
begin
..
p:=t.data;
m:=p^;
Проверяю дебаггером: доходит до строчки "p:=...", в p заносится значение, на следующую строчку дебаггер не попадает, в m остается прежнее значение. Почему так? И как этого избежать?
← →
Song (2003-08-25 09:38) [1]Это работа оптимизатора. Действительно, ему не надо переходить на строчку с m, так значение m компилятор вычислит на строчке с p.
← →
Юлия (2003-08-25 09:44) [2]Так значение в m не меняется!
← →
Song (2003-08-25 09:45) [3]Это как ты поняла?
← →
Юлия (2003-08-25 09:49) [4]В watch list.
Значения p^ и m не совпадают.
← →
Song (2003-08-25 09:51) [5]А должны? ;)
← →
Юлия (2003-08-25 09:53) [6]То есть как? Стоит оператор присваивания...
← →
Bel (2003-08-25 09:55) [7]А что такое "t"? Если это TTreeNode и тебе надо из его поля Data вытащить целое число, то это делается так:
m := Integer(t.Data);
← →
Song (2003-08-25 09:57) [8]А вот это - "^" для чего думаешь?
И вообще, если p с типом TTreeNode как ты можешь присваивать свойствo Data? У меня подозрение, что тии TTreeNode должен быть у t, а у p - Pointer
← →
Palladin (2003-08-25 09:57) [9]p это ttreenode, очень интересная концепция...
ты уверена что это вообще компилируется?
и что такое t?
← →
Palladin (2003-08-25 09:59) [10]
> Юлия (25.08.03 09:53) [6]
У меня к вам просьба, давайте сначала подружимся с Паскалем, а потом будем дружить с Делфи. Хорошо?
← →
Юлия (2003-08-25 10:00) [11]Все равно остается старое значение!!! Не попадает на нужную строчку!
← →
Юлия (2003-08-25 10:01) [12]Извиняюсь:
p:^integer;
← →
Anatoly Podgoretsky (2003-08-25 10:04) [13]Или m не используется или при выполненни p:=t.data; происходит ошика, которая где ни будь скрыто подавлена
← →
Digitman (2003-08-25 10:06) [14]p:=t.data;
m:=p^;
showmessage(m);
и все будет "попадать" куда надо)
← →
Song (2003-08-25 10:11) [15]2Digitman © (25.08.03 10:06) [
А m у тебя какого типа? :)
← →
Palladin (2003-08-25 10:12) [16]"Все смешалось в доме Оболонских"
← →
Digitman (2003-08-25 10:16) [17]
> Song
вах-вах-вах ! позор на мою седую лысину)
для полного ажура :
showmessage(IntToStr(m));
дотумкать до этого, конечно же, сложно)
← →
Юлия (2003-08-25 10:17) [18]m:integer;
Спасибо большое, заработало.
p:=t.Data;
m:=p^;
m:=m+1;
m:=m-1;
В таком виде все определяется правильно.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c