Текущий архив: 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.48 MB
Время: 0.017 c