![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как создать эффект нажатия левой кнопки мыши в ListBox? [D7, XP]
AlexanderMS © (2006-08-15 16:51:00)Мне нужно, чтобы после нажатии правой кнопки мыши элемент ListBox, находящийся под курсором, был выбран, как будто по нему щёлкнули левой кнопкой мыши.
Пробовал выбрать элемент через ItemAtPos, но происходит большая задержка. Пришёл к выводу: нужно сделать, чтобы при нажатии правой кнопки мыши был вызван обработчик события TCustomListBox.WMLButtonDown. Но тогда я не могу послать сообщение через SendMessage.
Подскажите, пожалуйста, как лучше сделать и как именно?
clickmaker (2006-08-15 17:07:00) [1]
> Пробовал выбрать элемент через ItemAtPos, но происходит
> большая задержка
никаких задержек
procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var Index: integer;
begin
if Button = mbRight then begin
Index := ListBox1.ItemAtPos(Point(X, Y), True);
if (Index >= 0) then
ListBox1.ItemIndex := Index;
end;
end;
Lexer (2006-08-15 17:06:00) [2]Ты будешь, удивлен, но TCustomListBox.WMLButtonDown тоже вызывает ItemAtPos.
Скорее всего задержка из-за чего-то другого...