Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2009, 16:33   #1
Neoteric
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 23
По умолчанию Клик по чужому LISTVIEW

В чужой программе имеется компонент LISTVIEW, при нажатие, на ячейки которого создаются различные формы.. Проблема в следующем: какую команду надо дать этому LISTVIEW, чтобы он обработал событие клика по заданной ячейки..
Neoteric вне форума Ответить с цитированием
Старый 06.04.2009, 11:49   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну как это какую?
Из семейства кликов нужно выбирать: BM_CLICK или WM_LBUTTONDOWN и WM_LBUTTONUP
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.04.2009, 16:55   #3
Neoteric
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 23
По умолчанию

Stilet, вы имеете в ввиду SendMessage(Wnd, BM_CLICK, 0, 0)?
Тогда какие параметры будут у этой ф-ии для клика по заданной ячейке, если Wnd - это наш LISTVIEW..
Neoteric вне форума Ответить с цитированием
Старый 07.04.2009, 09:22   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Лучше WM_LBUTTONDOWN и WM_LBUTTONUP
Потому как там можно указать координаты клика, которые ты должен вычислить. И в этом может помочь посылка ему сообщения LVM_FINDITEM , о котором читай в хелпе, там и координаты можно поймать
I'm learning to live...

Последний раз редактировалось Stilet; 07.04.2009 в 09:37.
Stilet вне форума Ответить с цитированием
Старый 13.04.2009, 10:09   #5
Neoteric
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 23
По умолчанию

Попробовал как вы сказали, благодарю получилось..Только единственная проблема, чтобы произвести клик, нужно устанавливать позицию курсора, а потом уже кликать, может быть в Delphi есть возможность производить клик по заданым координатам не изменяя текущей позиции курсора?..
Сейчас пока все примерно выглядет так:
Код:
//находим координаты ячейки
  SetCursorPos(X,Y);
  mouse_event(MOUSEEVENTF_LEFTDOWN,X,Y,0,0);
  mouse_event(MOUSEEVENTF_LEFTUP,X,Y,0,0);
Нашел вот такой код:
Код:
  pPoint.X:=X;
  PPoint.Y:=Y;
  hPointWnd := WindowFromPoint(pPoint);
  SendMessage(hPointWnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELONG(0, 0) );
  SendMessage(hPointWnd, WM_LBUTTONUP, 0, MAKELONG(0, 0));
Он кликает, но не там..Вроде гораздо выше курсора..

Последний раз редактировалось Stilet; 13.04.2009 в 13:26.
Neoteric вне форума Ответить с цитированием
Старый 13.04.2009, 13:29   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но не там
Смотри: MAKELONG(0, 0) - устанавливает координаты клика
вот в данном случае (0,0) от начала элемента.
Тут нужно вместо нудей прописывать локальные координаты ЛистВью.
Если pPoint - как раз локальные то помести туда их.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.04.2009, 12:16   #7
Neoteric
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 23
По умолчанию

Спасибо..Терь все пока ясно..
Neoteric вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поочередный клик на все items в listbox CraZZy RabbIt Общие вопросы Delphi 6 11.03.2009 15:13
перехватить клик мышки на компоненте. Делфи. Roof Win Api 4 24.02.2009 19:34
Двойной клик Алежа Общие вопросы .NET 3 16.11.2008 23:20
Клик мыши stayer Общие вопросы Delphi 1 30.10.2008 19:53
Программный клик мышью Аlex Win Api 1 30.06.2008 23:30