Як в listbox дізнатися номер останньої виділеної рядки

Ось і все питання. Дуже цікаво просто.

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

Це ж помилково, якщо таких не буде, то LAST не визначений.
неоптимально

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

Дасть тобі індекс видленной рядки

2 Adil Aliyev (30.12.03 1:36) [3]
А як щодо MultiSelect = True?

"Як в listbox дізнатися номер останньої виділеної рядки?"

Все працює правильно.

ListBox1.ItemIndex дає номер не останньою (нижньої) зі списку виділених рядків, а номер рядка, виділеної останньої за часом (останньої, по якій ти "клікнув")

До речі, вона може бути навіть зовсім не виділена.

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

Ееее for I: = ListBox1.Items.Count-1 down to 0 do.

PS. Enabled: = true / false

Плохіш_ (30.12.03 12:14) [9]
нуда помилка

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

> Плохіш_ (30.12.03 12:14) [9]
Саме так. А що Вас бентежить?

Зрозумів. А я ж теж не помітив.
: О)

Еееее, громадяни :)))))
Всім дякую :)))
Потрібно було дізнатися номер дійсно _последней_ виділеної рядки (ПО ЧАСУ ОСТАННЬОЇ.).
Я сам винен, не уточнив.
Хоча правда вже сам допер до цього :)
У itemDraw покопався, якщо кому цікаво, можу намалювати тут, як це робиться.
До речі, multiselected = true :)

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

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."

ItemIndex дійсно дає номер рядка, яка має фокус, але те, що рядок, що має фокус, буде останньою виділеною - АЖ НІЯК НЕ ФАКТ!
Можете перевірити самі;)