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

Вниз

как бы фильтр в ListBox e   Найти похожие ветки 

 
MisterBin   (2002-05-01 15:15) [0]

Нужно чтобы если Listbox содержит строки со значением "." и "..", то они оттуда удалялись, а все остальные оставались.


 
VID   (2002-05-01 15:30) [1]

...
Var SL:TStringList;
X:Integer;
Begin
SL:=TStringList.Create;
For X := 0 to ListBox1.Items.Count - 1 do
IF (POS (".", ListBox1.ITems.Strings [x])=0) and (POS ("..", ListBox1.ITems.Strings [x])=0) then SL.Add (ListBox1.Items.Strings[x]);

ListBox1.Items.Assign (SL);
SL.Free;
end;


 
Anatoly Podgoretsky   (2002-05-01 15:32) [2]

Listbox.Items[].Delete


 
VID   (2002-05-01 15:44) [3]

TO Anatoly Podgoretsky :
я тоже так думал, но потом одолели сомнения:
пусть дано:

for x := 0 to listbox1.items.count - 1 do
if listbox1.items.strings[x] = "." then listbox1.items.delete (x);

так вот не возникнет ли ошибки ? Ведь изменяется крайний предел цикла в теле самого цикла...

просто предпочёл указать более "безопасный" вариант...


 
Anatoly Podgoretsky   (2002-05-01 16:08) [4]

VID © (01.05.02 15:44)
Конечно возникнет, но кто же так пишет, верная дорога в могилу
Твой первый совет я не видел, но он тоже не хорош
Надо использовать обычный цикл вниз


 
Malder   (2002-05-01 16:29) [5]

Мне кажется вы не поняли вопроса. Если опираться на понятия фильтра, то я так себе представляю решение проблемы.
Нужно писать новый TListbox в котором будет событие типа OnAddItems, возникающее при добавлении строки. И в нем нужно проверять: если добавляемая строка "." или ".." то такая строка НЕ добавляется. То есть с помощью items.add и items.insert просто невозможно добавить строку с таким значением.

А если просто не добавлять в ListBox такие значения... то это и ежу понятно, как делать:

if (s<>".") and (s<>"..") then Listbox1.Items.Add(s);


 
Anatoly Podgoretsky   (2002-05-01 16:54) [6]

Просто противоречие между темой (фильтр) и объяснением (удаление)


 
VID   (2002-05-01 17:21) [7]

TO Song: насчёт "писать новый TListBox" - это перебор... достаточно контролировать добавляемую строку, в той процедуре которая этим и занимается.

А если Items заполняются из файла, то после метода LoadFromFile
вызвать процедуру по корректировке списка.



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

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

Наверх




Память: 0.45 MB
Время: 0.005 c
14-50097
Deus
2002-04-04 16:27
2002.05.16
Чё же такой форум фиговый?


1-49957
Demn
2002-04-29 06:01
2002.05.16
Как привязать MaskEdit к редактируемой ячейке в StringGrid


14-50119
IronHawk
2002-04-04 13:09
2002.05.16
Как из базы, данные, совать прямо в КьюРепортЛейбл .... ?


6-50071
scam
2002-03-05 01:45
2002.05.16
Написание plugin ов для Internet Explorer.


1-50048
SuperLamer
2002-05-02 17:27
2002.05.16
Процедура SetLeght





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