Форум: "Начинающим";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];
ВнизTCheckListBox Найти похожие ветки
← →
Alex8 (2007-08-15 16:10) [0]Уважаемые мастера !
Вот такая получается фокус :
(Здесь lbOr - TCheckListBox.)
procedure TfrmVib.lbOrClick(Sender: TObject);
Var i: Word;
r1: String;
begin
i := lbOr.ItemIndex;
r1 := lbOr.Items[lbOr.ItemIndex]; // r1="a"
r1:= lbOr.Items[i]; // r1="a"
r1:= lbOr.Items[i]; // r1="a"
r1:= lbOr.Items[i]; // r1="a"
r1:= lbOr.Items[i]; // r1=""
end;
И как бы я не варьировал (один оператор r1:=..; несколько одинаковых)
все результаты верные, а последний дает r1="".
В чем дело? Подскажите. Спасибо
← →
Alien1769 © (2007-08-15 17:21) [1]не забывай про lbOr.Items[0] и про lbOr.Items[last]
← →
Alex8 (2007-08-15 17:48) [2]Прошу прощения, но я не понял,
чем отличаются lbOr.Items[0] и lbOr.Items[last]
от остальных строк. То есть не пойму, о чем помнить.
Кстати, в приведенном мной примере все происходило
именно при i=0.
← →
Германн © (2007-08-15 17:55) [3]А если сделать так:
procedure TfrmVib.lbOrClick(Sender: TObject);
Var i: Word;
r1: String;
begin
i := lbOr.ItemIndex;
r1 := lbOr.Items[lbOr.ItemIndex]; // r1="a"
r1:= lbOr.Items[i]; // r1="a"
r1:= lbOr.Items[i]; // r1="a"
r1:= lbOr.Items[i]; // r1="a"
r1:= lbOr.Items[i]; // r1=""
ShowMessage(r1);
end;
Что покажет ShowMessage?
← →
Alex8 (2007-08-15 18:39) [4]>Что покажет ShowMessage?
Проверил.
ShowMessage показал все правильно.
А я смотрел в пошаговом режиме в тексте
процедуры и в окне Watches.
Так в чем я был не прав ?
← →
Германн © (2007-08-15 18:52) [5]
> А я смотрел в пошаговом режиме в тексте
> процедуры и в окне Watches.
> Так в чем я был не прав ?
>
После последней строчки r1:= lbOr.Items[i]; // r1="" смысл локальной переменной r1 терятся полностью. Поэтому Watches показывает белиберду.
← →
Alex8 (2007-08-15 19:14) [6]> Watches показывает белиберду.
Практика показывает, что это так.
Но не логично.
После последней строчки я еще не вышел
из процедуры. Очередной выполняемый оператор "End".
На него указывает стрелка.
Значит попал на "End", значит вышел из процедуры. Так ?
Наверное, так. Спасибо.
← →
Германн © (2007-08-15 19:19) [7]
> > Watches показывает белиберду.
> Практика показывает, что это так.
> Но не логично.
> После последней строчки я еще не вышел
> из процедуры. Очередной выполняемый оператор "End".
>
Да из процедуры еще не вышел. Но на данную переменную ссылок больше нигде нет.
← →
Alien1769 © (2007-08-15 19:47) [8]
> Прошу прощения, но я не понял,
> чем отличаются lbOr.Items[0] и lbOr.Items[last]
тебе уже Германн сказал, что
> Но на данную переменную ссылок больше нигде нет.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.045 c