![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Определить номер текуще строки в ListBox !? [D7, WinXP]
312kbps © (2007-12-20 16:03:00)На фоме есть ЛистВокс в нем список.
К ЛистВоксу подцепелно меню.
при нажатии правой кнопки мыши над лист воксом выводится меню далее обрабатывается процедура.
как мне узнать над какой строкой было вызвано меню ? узнать номер строки ?
{RASkov} (2007-12-20 21:30:00) [1]> [7] Palladin © (20.12.07 19:07)
> что то как то это все ректально :)
ступил :(
:) бывает
Palladin (2007-12-20 19:07:00) [2]
> [6] {RASkov} © (20.12.07 18:51)
что то как то это все ректально :)
procedure TForm1.ListBox1ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
Var
n:Integer;
begin
n:=TListBox(Sender).ItemAtPos(MousePos,True);
If n<>-1 Then TListBox(Sender).ItemIndex:=n;
end;
{RASkov} (2007-12-20 18:51:00) [3]> [5] 312kbps (20.12.07 16:13)
Высота строк в листбоксе у всех одинаковая?
Если да то вот так попробуй:
procedure TForm1.ListBox1ContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);
begin
ListBox1.ItemIndex:=ListBox1.TopIndex+(MousePos.Y div ListBox1.ItemHeight);
if ListBox1.ItemIndex<0 then Exit;
//Caption:=ListBox1.Items[ListBox1.ItemIndex];
end;
312kbps (2007-12-20 16:13:00) [4]тогда так, чтоб при вызове меню данная строка над которой вызвано меню выделялась
просто в этом меню отображаются дальнейшие действия над данной строкой )
!?
Юрий Зотов (2007-12-20 16:12:00) [5]> 312kbps (20.12.07 16:06) [3]
Юзер будет в восторге, когда поймет, что операция выполнена не с тем элементом листбокса, который он видит выделенным, а непонятно с каким.
312kbps (2007-12-20 16:06:00) [6]так можно узнать только после того как выделишь строку в списке, нажатием левой кн мышки
а мне надо узнать над кокой строкой было вызвано меню
Kolan (2007-12-20 16:05:00) [7]> ListBox.ItemIndex ?
Даже лучьше
if Sender is TListBox then
(Sender as TListBox).ItemIndex
Kerk (2007-12-20 16:04:00) [8]ListBox.ItemIndex ?