![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ScreenToClient - отрицательные отрицательные значения Point.Y
Arm79 © (2007-09-07 17:06:00)Здравствуйте.
Что то под конец дня думается плохо. Никак не соображу, как сделать следующее.
Есть ListView. Необходимо по двойному клику определить по какому итему и в каком столбце был клик.
Функция GetItemAt принимает значения Х и У в относительных координатах ЛистВью.
Эвент onDblClick не содержит координат
Попытался сделать
var
tmpPoint : TPoint
begin
tmpPoint := ListView.ScreenToClient(Mouse.CursorPos);
...
end;
Но в tmpPoint.Y пишется отрицательное значение.
А как получить нормальный TPoint c правильными координатами?
Arm79 (2007-09-07 17:58:00) [1]
> Palladin © (07.09.07 17:42) [5]
> ну значит у тебя
>...
>// тут что то написано, что как то меняет p
>
чес слово, нет )
до сих пор вижу. код буквально скопировал.
ладно, подумаю, как по другому реализовать.
Palladin (2007-09-07 17:42:00) [2]ну значит у тебя
p:=ListView1.ScreenToClient(Mouse.CursorPos);
// тут что то написано, что как то меняет p
ShowMessage('x:'+IntToStr(p.X)+',y:'+IntToStr(p.Y));
Arm79 (2007-09-07 17:39:00) [3]
> Palladin © (07.09.07 17:34) [3]
> с чего ты взял что там может появится отрцательное значение?
>
потому что я его через раз вижу ))
Palladin (2007-09-07 17:34:00) [4]с чего ты взял что там может появится отрцательное значение?
procedure TForm1.ListView1DblClick(Sender: TObject);
var
p:TPoint;
begin
p:=ListView1.ScreenToClient(Mouse.CursorPos);
ShowMessage('x:'+IntToStr(p.X)+',y:'+IntToStr(p.Y));
end;
у меня не получилось
Arm79 (2007-09-07 17:19:00) [5]
> Efir © (07.09.07 17:16) [1]
> ListView.ItemIndex
и в каком столбце был клик.
Efir (2007-09-07 17:16:00) [6]ListView.ItemIndex