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

Вниз

Как в listbox узнать номер последней выделенной строки?   Найти похожие ветки 

 
raidan ©   (2003-12-29 22:25) [0]

Вот и весь вопрос. Очень интересно просто.


 
Stilgar ©   (2003-12-29 23:17) [1]

var
I, Last: Integer;
begin
for I:=0 to ListBox1.Items.Count-1 do
if ListBox1.Selected[I] then
Last:=I;
end;


 
Anatoly Podgoretsky ©   (2003-12-29 23:44) [2]

Это же ошибочно, если таких не будет, то LAST не определен.
Неоптимально

Last := -1;
for I := ListBox1.Items.Count-1 to 0 do
if ListBox1.Selected[I] then
begin
Last := I;
Break;
end;
end;


 
Adil Aliyev   (2003-12-30 01:36) [3]

ListBox1.ItemIndex;

Даст тебе индекс выдленной строки


 
Германн ©   (2003-12-30 02:13) [4]

2 Adil Aliyev (30.12.03 01:36) [3]
А как насчет MultiSelect=True?


 
Adil Aliyev   (2003-12-30 02:45) [5]

"Как в listbox узнать номер последней выделенной строки?"

Все работает правильно.


 
CTAPbIi   (2003-12-30 09:58) [6]

ListBox1.ItemIndex дает номер не последней (нижней) из списка выделенных строк, а номер строки, выделенной последней по времени (последней, по которой ты "кликнул")


 
CTAPbIi   (2003-12-30 10:01) [7]

Кстати, она может быть даже совсем не выделена!


 
miracle_fox ©   (2003-12-30 12:08) [8]

есть такой ещё вопрос: имеется popupmenu. что, например, нужно сделать, чтобы когда просто кликаешь на листобоксе - то некоторые строки(итемз у этого меню) popupmenu неактивными были, а когда выделяешь в listbox какой-нить итем, то чтобы активными становились все? думаю вопрос понятен... помогите, если знаете как. спасибо


 
Плохиш_   (2003-12-30 12:14) [9]

>Anatoly Podgoretsky © (29.12.03 23:44) [2]

Ээээ for I := ListBox1.Items.Count-1 downto 0 do ?


 
Плохиш_   (2003-12-30 12:17) [10]

>miracle_fox © (30.12.03 12:08) [8]

> нужно сделать, чтобы когда просто кликаешь на листобоксе
> - то некоторые строки(итемз у этого меню) popupmenu неактивными
> были

Вообще-то, когда кликаешь, уже что-то выделяется

PS. .Enabled := true/false


 
Anatoly Podgoretsky ©   (2003-12-30 12:18) [11]

Плохиш_ (30.12.03 12:14) [9]
Нуда опечатка


 
Serge ©   (2003-12-30 12:18) [12]

PopUpMenu1.Items[i].Enabled:=ListBox1.ItemIndex > -1 ?


 
Юрий Зотов ©   (2003-12-30 12:19) [13]

> miracle_fox © (30.12.03 12:08) [8]
Пишете обработчик OnPopup и там делаете все, что нужно.

> Плохиш_ (30.12.03 12:14) [9]
Именно так. А что Вас смущает?


 
Плохиш_   (2003-12-30 12:22) [14]

>Юрий Зотов © (30.12.03 12:19) [13]

> > Плохиш_ (30.12.03 12:14) [9]
> Именно так. А что Вас смущает?

Меня не смущает, я вообще чисто поправил, без задней мысли :-)
А то ведь студенты не поймут ;-)


 
Anatoly Podgoretsky ©   (2003-12-30 12:27) [15]

Смущает Anatoly Podgoretsky © (29.12.03 23:44) [2], поправил правильно.


 
Юрий Зотов ©   (2003-12-30 12:42) [16]

> Плохиш_ (30.12.03 12:22) [14]
> Anatoly Podgoretsky © (30.12.03 12:27) [15]

Понял. А я ведь тоже не заметил.
:о)


 
raidan ©   (2003-12-30 13:03) [17]

ЭЭЭЭЭ, граждане :)))))
Всем спасибо :)))
Нужно было узнать номер действительно _последней_ выделенной строки (ПО ВРЕМЕНИ ПОСЛЕДНЕЙ!!!!!).
Я сам виноват, не уточнил.
Хотя правда уже сам допер до этого :)
В itemDraw покопался, если кому интересно, могу нарисовать тут, как это делается.
Кстати, multiselected=true :)


 
raidan ©   (2003-12-30 13:08) [18]

И на засыпку.
Мой способ позволяет узнать номер последней (по времени) выделенной строки (MultiSelect=true) независимо от способа выделения (клавиатура, мышь Ctrl+, Shift+), порядка и т.д.
Можете предложить свой способ?


 
Anatoly Podgoretsky ©   (2003-12-30 13:16) [19]

raidan © (30.12.03 13:03) [17]
Последня по времени ItemIndex


 
CTAPbIi   (2003-12-30 13:26) [20]

ItemIndex дает номер строки на которая имеет фокус (по которой кликнули последней). Она может быть и не выделена при MultiSelect=true.

"...If the value of the MultiSelect property is True the user can select more than one item in the list box. In this case, the ItemIndex value is the index of the selected item that has focus..."


 
raidan ©   (2003-12-30 14:12) [21]

CTAPbIi прав.

ItemIndex действительно дает номер строки, которая имеет фокус, но то, что строка, имеющая фокус, будет последней выделенной - ОТНЮДЬ НЕ ФАКТ!
Можете проверить сами ;)



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

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

Наверх




Память: 0.51 MB
Время: 0.024 c
1-37639
maxfiles
2003-12-23 23:54
2004.01.13
Как правильно узнать размер файла...


11-37592
Сызганов Николай
2003-04-21 12:52
2004.01.13
Работа с DBExpress ( D7) из-под КОЛ возможна?


8-37806
SMike
2003-08-27 19:14
2004.01.13
Как определить/нажать клавиши на навороченных клавиатурах?


14-37864
Nest
2003-12-16 19:58
2004.01.13
Подскажите не устанавливается MS Visual Studio .NET


1-37680
emergenter
2003-12-25 18:32
2004.01.13
Компиляция!