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

Вниз

Помогите с ListBox   Найти похожие ветки 

 
Cerberus ©   (2005-12-03 19:35) [0]

Ну жно в лист боксе найти имя и удалить его пробую этот код, но ни чего не выходит.
for f:=0 to ListBox1.Items.Count-1 do if ListBox1.Items.Strings[f] = user then listbox1.Items.Delete(f);


 
Antonn ©   (2005-12-03 19:40) [1]

что такое user?
регистрозависимость есть.
и нужно
for f:=ListBox1.Items.Count-1 downto 0 do


 
begin...end ©   (2005-12-03 19:40) [2]

Крутите цикл в обратную сторону (downto). И не совсем понятно, почему не выходите из цикла сразу после удаления. Или возможно, что в списке будет несколько элементов, удовлетворяющих условию?


 
Cerberus ©   (2005-12-03 19:46) [3]


> что такое user?

Переменная.
> begin...end ©   (03.12.05 19:40) [2]

Маловероятно.
А что даст прокрутка цикла в обратную сторону?


 
Antonn ©   (2005-12-03 19:51) [4]

Cerberus ©   (03.12.05 19:46) [3]
Переменная.

да ну?
:)

> А что даст прокрутка цикла в обратную сторону?

догадайся. AV при удалении хоть одной строки, как минимум.


 
Cerberus ©   (2005-12-03 19:56) [5]

Нифига не выходит.


 
begin...end ©   (2005-12-03 20:01) [6]

> Cerberus ©   (03.12.05 19:46) [3]

Начальное и конечное значение счётчика цикла for вычисляется только один раз (перед его исполнением), а не на каждом проходе. При прямом цикле получаем следующее: нижняя граница -- 0, верхняя граница -- число, на единицу меньшее количества элементов в списке. Если хотя бы один из элементов будет удалён, то реальное количество элементов в списке уменьшится, а верхняя граница останется прежней (она не перевычисляется). А вот при проходе цикла в обратную сторону такого не будет, хотя границы также будут вычислены лишь единожды. Подумайте, почему.

> Antonn ©   (03.12.05 19:51) [4]

>> А что даст прокрутка цикла в обратную сторону?
> догадайся. AV при удалении хоть одной строки, как минимум.

Прокрутка в обратную сторону даст AV? :-)
Да и при прямом проходе будет не AV, а EStringListError.

> Cerberus ©   (03.12.05 19:56) [5]

Ждём код, содержимое ListBox, образец для поиска и симптомы того, что "нифига не выходит".


 
Cerberus ©   (2005-12-03 20:13) [7]

Вощем Содержимое ListBox:
Sabaka
Cerberus
Ekzot
и в таком духе

То есть на одну строчку одно слово.
нужо найти к примеру Sabaka и удалить эту строку.
>  что "нифига не выходит".

Тоесть ничего не происходит.


 
ListBox   (2005-12-03 20:26) [8]


procedure TForm1.Button1Click(Sender: TObject);
var f:word;
begin
 f:=0;
 while  f<ListBox1.Items.Count do
    begin
      if ListBox1.Items.Strings[f] = "user" then listbox1.Items.Delete(f);
      f:=f+1;
    end;
end;


 
begin...end ©   (2005-12-03 20:31) [9]

> Cerberus ©   (03.12.05 20:13) [7]

Уфф... Там может быть только одна такая строчка, или их может быть несколько?

> ListBox   (03.12.05 20:26) [8]

if ListBox1.Items.Strings[f] = "user" then
 ListBox1.Items.Delete(f)
else
 f := f + 1;

иначе, если две строки подряд будут, то не удалит.



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

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

Наверх





Память: 0.46 MB
Время: 0.015 c
14-1132636419
TUser
2005-11-22 08:13
2005.12.18
Подключить USB хард к двум компьютерам


1-1132738006
BURN
2005-11-23 12:26
2005.12.18
Excel ==> DB


1-1132312500
Lexer
2005-11-18 14:15
2005.12.18
Как вставить Pointer(-1) в ComboBox1.Items.Objects?


14-1132786499
Gero
2005-11-24 01:54
2005.12.18
Продажа компонентов


4-1128592123
Windows1
2005-10-06 13:48
2005.12.18
фокус на кнопке+нажать ее Enter^ом





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский