Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.04.02;
Скачать: [xml.tar.bz2];

Вниз

-->listbox удаляет строки через одну, почему????<--   Найти похожие ветки 

 
MaSZ ©   (2006-03-08 21:34) [0]

Обычным циклом пытаюсь удалить все из листбокса, но строки удаляються через одну, почему??
Вот листинг:
for i:=0 to form1.ListBox1.Items.Count do form1.ListBox1.Items.Delete(i);

Предположительно указатель перемещаеться на сл. строку, но как тогда этого избежать?


 
Anatoly Podgoretsky ©   (2006-03-08 21:35) [1]

А на бумажке рассписать, что получается не можешь?


 
Loginov Dmitry ©   (2006-03-08 21:36) [2]

Delete(0);


 
TUser ©   (2006-03-08 21:36) [3]

После удаления строки индексы всех последующих строк меняются. Используй цикл
for i:=Count-1 downto 0 do
 Delete (i);


 
Юрий Зотов ©   (2006-03-08 21:39) [4]

> MaSZ ©   (08.03.06 21:34)  

with ListBox1.Items do
 for i := Count - 1 downto 0 do Delete(i);

А вообще, ListBox1.Clear.


 
iZEN ©   (2006-03-08 22:32) [5]

>Юрий Зотов ©   (08.03.06 21:39) [4]
>for i := Count - 1 downto 0 do Delete(i);
По сути верно, но в общем случае неправильно.
Здесь без критической секции не обойтись. Нужно блокировать список на время обновления. Если несколько нитей попытаются изменить количество элементов в нём...чудеса обеспечены.


 
Труп Васи Доброго ©   (2006-03-08 22:45) [6]

iZEN ©   (08.03.06 22:32) [5]
По сути верно, но в общем случае неправильно.


Вообще говоря (если уж припёрло удалять по одной строке), то прав

> Loginov Dmitry ©   (08.03.06 21:36) [2] [Новое
>сообщение][Ответить]
> Delete(0);
Только этот Delete(0) надо упаковать в While, тогда нифига блокировать не надо, пусть вставляет хоть кто до посинения, один хрен удалится.


 
Труп Васи Доброго ©   (2006-03-08 22:46) [7]

Короче говоря надо так:
while (listbox1.Items.Count>0) do
   begin
     listbox1.Items.Delete(0);
   end;


 
Юрий Зотов ©   (2006-03-08 23:20) [8]

> iZEN ©   (08.03.06 22:32) [5]

Ваше замечание о многоточности особенно актуально для визуального компонента и для человека, спрашивающего, как очистить ListBox.


 
Юрий Зотов ©   (2006-03-08 23:22) [9]

многоПОточности, конечно.


 
Marser ©   (2006-03-08 23:32) [10]

Удалено модератором
Примечание: офтопик


 
Юрий Зотов ©   (2006-03-09 00:32) [11]

Удалено модератором
Примечание: офтопик


 
Marser ©   (2006-03-09 00:44) [12]

Удалено модератором
Примечание: офтопик (почтой нельзя разве повспоминать?)


 
Marser ©   (2006-03-09 01:05) [13]

> Примечание: офтопик (почтой нельзя разве повспоминать?)

Дайте адрес. У меня действующего нет.


 
Marser ©   (2006-03-09 01:06) [14]

Присоединяюсь к [8], именно это я и хотел сказать. Не исключаю, что Изен стебётся...

> Юрий Зотов ©

С возвращением!



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.04.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.043 c
2-1142416078
Amina
2006-03-15 12:47
2006.04.02
F1Book помогите!!!


3-1139306548
Paha
2006-02-07 13:02
2006.04.02
изменить запущенного проекта из PROGRAM в v$session


15-1142109314
ZeFiR
2006-03-11 23:35
2006.04.02
Происхождение вашего ника


15-1142066813
den_c
2006-03-11 11:46
2006.04.02
Этот загадочный MIDL


15-1141676647
ANB
2006-03-06 23:24
2006.04.02
Наша армия и чего с ней делать





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский