Форум: "Основная";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];
ВнизIf ....Then Найти похожие ветки
← →
Drozdov A (2004-02-18 15:22) [0]procedure TForm1.N12Click(Sender: TObject);
var
nkv,kvar:integer;
begin
nkv:=3;
if nkv = 3 then
kvar:=1;
nkv:=kvar; // смотрю тут NKV в отладчике, а она у меня пустая,
не равна т.е. 1
end;
end;
Подскажите в чём тут дело ???
← →
Guest (2004-02-18 15:24) [1]В оптимизации.
← →
Плохиш (2004-02-18 15:24) [2]Оптимизацию отключи, студент.
← →
Guest (2004-02-18 15:28) [3]Замените все на:
kvar := 1;
nkv :=1
← →
Anatoly Podgoretsky (2004-02-18 15:35) [4]В отлажчике
← →
Drozdov A (2004-02-18 15:36) [5]КВАР и НКВ я не могу присвоить равным единице, просто я тут упрощённо написал свой вопрос.
Вообщем, что такое ОПТИМИЗАЦИЯ тут ?
← →
Плохиш (2004-02-18 15:38) [6]
> Drozdov A (18.02.04 15:36) [5]
Это значит тут ?
И вообще весь твой приведённый код не имеет смысла.
← →
Drozdov A (2004-02-18 15:45) [7]код в самом деле такой !
Но я не могу Nkv:=1 и Kvar:=1
присвоение такое поставить.
← →
Guest (2004-02-18 15:47) [8][7] Drozdov A (18.02.04 15:45)
Приведите полный код, тогда сможем объяснить, почему так происходит.
А оптимизация - это когда умный компилятор вставляет вместо вашего кода свой, выполняющий то же самое, но быстрее.
← →
DenK_vrtz (2004-02-18 15:49) [9]А хде ж тут базы? :)
← →
Drozdov A (2004-02-18 15:55) [10]Guest (18.02.04 15:47) [8]
Я ж вроде написал свой код полный
procedure TForm1.N12Click(Sender: TObject);
var
nkv,kvar:integer;
begin
nkv:=3;
if nkv = 3 then
kvar:=1;
nkv:=kvar; // смотрю тут NKV в отладчике, а она у меня пустая, не равна т.е. 1
end;
больше у меня в этой процедуре ничего нету.
← →
Val (2004-02-18 15:56) [11]>DenK_vrtz © (18.02.04 15:49) [9]
в оптимизаторе! :))
← →
Guest (2004-02-18 15:57) [12][10] Drozdov A (18.02.04 15:55)
Тогда можете эту процедуру удалить. Она вообще ничего не делает.
Естественно, компилятор ее "выбросил".
← →
Fay (2004-02-18 15:59) [13]Попробуйте так:
procedure TForm1.N12Click(Sender: TObject);
var
nkv,kvar:integer;
begin
nkv:=1;
if nkv = 1 then kvar:=1
else kvar := 1;
repeat
nkv:=StrToInt(IntToStr(kvar));
until nkv = kvar;
end;
← →
Johnmen (2004-02-18 16:00) [14]Это либо очередной развод, либо страсть по орехам...
:))))))))
← →
Drozdov A (2004-02-18 16:05) [15]Guest (18.02.04 15:57) [12]
А эта делает ?
procedure TForm1.N12Click(Sender: TObject);
var
dmes:string;
nkv,kvar:integer;
begin
nkv:=3;
dmes:=formatdatetime("mm",Date);
if strtoint(dmes)<4 then
kvar:=1;
if (strtoint(dmes)>3) and (strtoint(dmes)<7) then
kvar:=2;
if (strtoint(dmes)>6) and (strtoint(dmes)<10) then
kvar:=3;
if (strtoint(dmes)>9) and (strtoint(dmes)<13) then
kvar:=4;
nkv:=kvar;
end;
← →
Fay (2004-02-18 16:08) [16]2 Drozdov A (18.02.04 16:05) [15]
Это просто ГЕНИАЛЬНЫЙ код !!!! Мастер! Возьмите меня в ученики!!!
← →
Guest (2004-02-18 16:11) [17][15] Drozdov A (18.02.04 16:05)
Нет, тоже ничего не делает.
← →
Плохиш (2004-02-18 16:13) [18]Всю ветку в орешник, одн азначн а
← →
Drozdov A (2004-02-18 16:23) [19][15] Drozdov A (18.02.04 16:05)
Меня разводите ?
Ну как ничего не делает ?
Там же присвоение какое-никакое происходит...
← →
Guest (2004-02-18 16:25) [20][19] Drozdov A (18.02.04 16:23)
Идет присвоение локальным переменным, которые "исчезают" сразу после завершения процедуры.
← →
Плохиш (2004-02-18 16:32) [21]>Drozdov A (18.02.04 16:23) [19]
[18]
← →
Drozdov A (2004-02-18 16:35) [22][19] Drozdov A (18.02.04 16:23)
Вот терь я понял слегка свою ошибку, но не до конца...
Я все свои переменные
var
dmes:string;
nkv,kvar:integer;
вынес в самый верх и там их присвоил и только после этого я смог в отладчике увидеть значение нужной переменной.
Но почему я должен был все эти переменные так далеко выносить ?
Я ж их только хочу использовать в этой конкретной процедурке и только в ней...
← →
Guest (2004-02-18 16:37) [23]procedure TForm1.N12Click(Sender: TObject);
var
dmes:string;
nkv,kvar:integer;
begin
nkv:=3;
dmes:=formatdatetime("mm",Date);
if strtoint(dmes)<4 then
kvar:=1;
if (strtoint(dmes)>3) and (strtoint(dmes)<7) then
kvar:=2;
if (strtoint(dmes)>6) and (strtoint(dmes)<10) then
kvar:=3;
if (strtoint(dmes)>9) and (strtoint(dmes)<13) then
kvar:=4;
nkv:=kvar;
showmessage(inttostr(nkv))
end;
Вот теперь эта процедура что-то делает :)
← →
Плохиш (2004-02-18 16:41) [24]>Drozdov A (18.02.04 16:35) [22]
Ну не может каждая кухарка не только управлять государством, но и быть программистом.
← →
Danilka (2004-02-18 16:41) [25]и куда смотрит милиция?
как не стыдно, накануне выборов и такие ветки в базах!
[19] Drozdov A (18.02.04 16:23)
может, книжку какую по программированию почитать?
вабче-то, компилятор не дурак, видит, что эти переменные нигде не используюцца, поэтому и халтурит.
← →
Guest (2004-02-18 16:42) [26][25] Danilka © (18.02.04 16:41)
Так я ж уже написал про умный компилятор :)
← →
Danilka (2004-02-18 16:44) [27][26] Guest (18.02.04 16:42)
дык, до чела если не дошло..
не поймет он, что лень не только людям свойственна..
← →
Guest (2004-02-18 16:45) [28][27] Danilka © (18.02.04 16:44)
Я думаю, что только людям (и другим живым существам) свойственна. Впрочем, это уже явный offtopic.
← →
Drozdov A (2004-02-18 16:48) [29]ну мож кого и посмешил :-)
Чего вы в самом деле...
В натуре я новичок в Делфи...
Пасиба Guestу, поставил на путь истинный
хех..
← →
Engeneer (2004-02-18 18:53) [30]procedure TForm1.N12Click(Sender: TObject);
begin
end;
Подскажите в чём тут дело ???
← →
SergP (2004-02-18 19:02) [31]Engeneer (18.02.04 18:53)
procedure TForm1.N12Click(Sender: TObject);
begin
end;
Подскажите в чём тут дело ???
Пиши так:
procedure TForm1.N12Click(Sender: TObject);
begin
// Тут нифига нет
end;
такое будет работать, а то на твой код дельфя даже смотреть не хочет а удаляет нафиг прямо из исходников... :))
← →
Verg (2004-02-18 19:45) [32]Точно, DrozdovA, я тоже полиэтиленовые мешки, перед тем как выбросить, мою с мылом и сушу....
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.007 c