Главная страница
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.022 c
2-1187179843
Alex8
2007-08-15 16:10
2007.09.09
TCheckListBox


6-1168802216
K@KTUS
2007-01-14 22:16
2007.09.09
Как вытянуть из html-файла список всех ссылок и картинок


15-1187091840
Манол
2007-08-14 15:44
2007.09.09
Нужен совет профессионала


2-1187097353
SamProf
2007-08-14 17:15
2007.09.09
Как написать свой intraweb компонент


15-1187068376
КольцовЮрий
2007-08-14 09:12
2007.09.09
Друзья, есть у кого нибудь примеры исходников...