Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

TListBox   Найти похожие ветки 

 
Mihey ©   (2003-10-28 01:03) [0]

В режиме MultiSelect = True как узнать, какие Items выделены? Почему то Selected не помогает :((( (возвращает только один выделенный элемент, очевидно, с фокусом который).


 
XED ©   (2003-10-28 01:33) [1]

Вот тебе код:

Var
i:Integer;
begin
For i:= 0 to ListBox1.Count-1 do If ListBox1.Selected[i] then ShowMessage("Item "+IntToStr(i)+" is selected!!!");


 
Maxud ©   (2003-10-28 01:35) [2]


for i := 0 to ListBox1.Items.Count-1 do
if ListBox1.Selected[i] then
ListBox2.Items.Add(ListBox1.Items[i]);


SelCount - сколько строк выделено.


 
Guerrillero ©   (2003-10-28 01:36) [3]

Учить матчасть, срочно:
var
I: Integer;
begin
with ListBox1 do
if Items.Count > 0 then
for I := 0 to Items.Count - 1 do
if Selected[I] then ShowMessage(Items[I]);


 
zapped ©   (2003-10-28 10:41) [4]

2 Guerrillero © (28.10.03 01:36) [3]
if Items.Count > 0 then // эта строка лишняя ;))
если Count <=0 тело цикла выполняться всё равно не будет :))


 
Mihey ©   (2003-10-28 16:33) [5]

А как удалить выделенные?


 
Palladin ©   (2003-10-28 16:36) [6]

Ну это самое сложное.
TListBox.DeleteSelected


 
Mihey ©   (2003-10-28 21:31) [7]

2 Palladin:

Не нашёл такого метода :(((


 
Maxud ©   (2003-10-28 21:41) [8]


> Mihey © (28.10.03 21:31) [7]

Странно, а я нашел...

ListBox1.DeleteSelected; // работает :))


 
Anatoly Podgoretsky ©   (2003-10-28 21:58) [9]

Mihey © (28.10.03 21:31) [7]
Нету такого, зато есть метод Delete


 
Mihey ©   (2003-10-28 22:00) [10]

> Нету такого, зато есть метод Delete

У меня не выходит написать цикл, в котором выделенные элементы удалятся.


 
panov ©   (2003-10-28 22:17) [11]

В D6 есть DeleteSelected


 
panov ©   (2003-10-28 22:19) [12]

А цикл просто строится:

for i := lb.Items.Count-1 downto 0 do
begin
if lb.Selected[i] then
begin
lb.Items.Delete(i);
end;
end;


Ну и самое простое, одной строкой - lb.DeleteSelected;


 
Mihey ©   (2003-10-28 22:30) [13]

> for i := lb.Items.Count-1 downto 0 do
begin
if lb.Selected[i] then
begin
lb.Items.Delete(i);
end;
end;


Странно, вот именно это у меня и не работает. Ладно, разберусь сам, а то вы уже шуточки пускать стали.


 
Zacho ©   (2003-10-28 22:35) [14]


> Mihey © (28.10.03 22:30) [13]

Как именно не работает ? Текст сообщения об ошибке ?


 
Anatoly Podgoretsky ©   (2003-10-28 22:35) [15]

panov © (28.10.03 22:17) [11]
У него Д5, поэтому этот удобный путь исключается, если только не написать свою функцию.


 
anonymous   (2003-10-28 23:20) [16]

www.cadsofttools.com


 
Mihey ©   (2003-10-29 00:25) [17]

> Как именно не работает ? Текст сообщения об ошибке ?

Удаляет только один выделенный элемент. Но хочу сразу вас успокоить. Я использую не совсем TListBox, а flat-style компонент, который является потомком TCustomControl и который один в один повторяет свойства TListBox. Очевидно, ошибка в коде компонента, с чем я и постараюсь разобраться.



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

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.023 c
3-41107
неважно
2003-10-22 17:23
2003.11.13
Проблемка, посоветуйте плиз (двоичные данные)


4-42332
SergeySEM
2003-09-03 16:05
2003.11.13
добавить кнопку в заголовк чужого окна


4-42255
w666w
2003-09-15 15:02
2003.11.13
Drag & Drop - без WinAPI никуда...


14-41875
BOA_KAA
2003-10-24 15:42
2003.11.13
Есть предложение :)


7-42159
tvic
2003-09-02 10:59
2003.11.13
Как копировать по частям