Главная страница
    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.012 c
3-1130581620
Viktop
2005-10-29 14:27
2005.12.18
Грид не отображает данные


2-1132726445
AndreyAR
2005-11-23 09:14
2005.12.18
Не виден сервер


3-1130898365
antoxa2005
2005-11-02 05:26
2005.12.18
Подскажите, а можно ли изменять схему данных Access из программы


2-1133440242
Alexey Panov
2005-12-01 15:30
2005.12.18
почта и Delphi


2-1133446557
coral
2005-12-01 17:15
2005.12.18
DBLookupComboBox





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