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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2013, 11:37   #1
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию Lazarus координаты кликнутой ячейки

Пытался вычислять координаты через координаты курсора мыши в момент нажатия и столкнулся с тем, что Lazarus не понимает что такое GetCursorPos
Есть GetCursorPos в Лазарусе? Если есть, то где? А если нет, то каким образом решить указанную проблему?

ЗЫ. Мне нужны Х и У в системе координат курсора, дабы закрыть ячейку своим DateEdit'ом дабы юзер вводил в столбец только даты. Текущие индексы ячейки в рамках СтрингГрида мне не интересны
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 12.11.2013, 12:10   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

гугл - GetCursorPos в Лазарус
первая же http://lists.lazarus.freepascal.org/...er/046194.html
орет
Цитата:
GetCursorPos is defined in winapih.inc.
Stilet на лазарусе пишет, уточнит, если не так
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.11.2013, 13:31   #3
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

В общем-то нашел, однако проблему это не решило. Как мне преобразовать координаты мыши в координаты left и top конкретной ячейки Стрингрида?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 12.11.2013, 14:06   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А так лазарус хавает?
Код:
procedure TForm1.StringGrid1Click(Sender: TObject);
var xRect: TRect;
    xPoint: TPoint;
begin
  xRect:=StringGrid1.CellRect(StringGrid1.Col,StringGrid1.Row);
  Label1.Caption:=Format('Left=%d,Top=%d',[xRect.Left,xRect.Top]);
  xPoint:=StringGrid1.ClientToScreen(Point(xRect.Left,xRect.Top));
  Label2.Caption:=Format('Left=%d,Top=%d',[xPoint.X,xPoint.Y]);
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.11.2013, 14:14   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ребята, вы чего? Mouse.CursorPos есть и в Делфи и в Лазаре.
Цитата:
А так лазарус хавает?
Это насколько я понимаю не совсем в оконных координатах. Может Уткину нужно в абсолюте...

Опять дописываю пост: Есть метод StringGrid1.MouseToCell() Вот им и нужно преобразовывать из координат в ячейки.
I'm learning to live...

Последний раз редактировалось Stilet; 12.11.2013 в 14:19.
Stilet вне форума Ответить с цитированием
Старый 12.11.2013, 14:16   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Дык ему координаты левого верхнегно угла ячейки нужны, моусе здесь как бы и не причем
Цитата:
Это насколько я понимаю не совсем в оконных координатах
Почему? в лейбл2 и отображаю экранные координаты, в лейбл1 оконные
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 12.11.2013 в 14:21.
Аватар вне форума Ответить с цитированием
Старый 12.11.2013, 15:08   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

В любом случае Уткину уже есть из чего выбирать
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.11.2013, 15:39   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
в лейбл1 оконные
Здесь поспешил - относительно грида. Для оконных можно использовать ScreenToClient формы от экранных координат
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.11.2013, 07:06   #9
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Решил по методу Стилета, координаты мыши подключаются через юнит LCLIntf
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 13.11.2013, 09:11   #10
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,371
По умолчанию

Мен любопытно, зачем нужен GetCursorPos - разве в событиях мыши нет координат?
waleri вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Координаты ячейки в StringGrid??? aslanbek Общие вопросы Delphi 13 01.08.2014 16:53
Как определить координаты ячейки внутри функции вызываемой как формула из ячейки? RISagitov Microsoft Office Excel 3 07.03.2013 19:45
Получить координаты ячейки в CxGrid Andrey85 Компоненты Delphi 3 30.10.2011 16:32
как определить координаты ячейки с найденным текстом Тимониссимо Безопасность, Шифрование 2 30.05.2007 15:23