Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.09;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
2-1186691643
Ruffian
2007-08-10 00:34
2007.09.09
Прослушивание порта..


6-1168890768
vasia222
2007-01-15 22:52
2007.09.09
Компрессор трафика! подскажите


15-1186466219
gn
2007-08-07 09:56
2007.09.09
Продвижение сайта.


15-1186701198
SerJaNT
2007-08-10 03:13
2007.09.09
PHP & HTML: таблицу в 3 столбика


1-1183434626
Kolan
2007-07-03 07:50
2007.09.09
TStringGrid с объединёными ячейками, как реализовать?