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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2009, 16:57   #1
Bayazet
Форумчанин
 
Регистрация: 08.12.2008
Сообщений: 156
По умолчанию написание собственного события

у меня на форме есть TPaintBox
мне необходимо обработать событие onClick
вот только в этом стандартном событии нет координат Х У курсора. где мне можно их достать?

события onMouseDown или onMouseUp не подходят
Bayazet вне форума Ответить с цитированием
Старый 06.04.2009, 17:02   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Я вот так делал. (тут TImage, но это не важно)
Код:
procedure TForm1.Image1Click(Sender: TObject);
var T : TPoint;
Mos : TMouse;
begin
T.X := Mos.CursorPos.X - Form1.left - 5 - Image1.Left;
T.Y := Mos.CursorPos.Y - Form1.Top -22 - Image1.Top;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.04.2009, 17:10   #3
Bayazet
Форумчанин
 
Регистрация: 08.12.2008
Сообщений: 156
По умолчанию

я так понимаю, 22 и 5 - это рамки формы, вычисленные опытным путем?
Bayazet вне форума Ответить с цитированием
Старый 06.04.2009, 17:11   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
я так понимаю, 22 и 5 - это рамки формы, вычисленные опытным путем?
Да. Я что-то не нашел подходящих свойств.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.04.2009, 18:39   #5
VVM
Форумчанин
 
Аватар для VVM
 
Регистрация: 06.06.2007
Сообщений: 282
По умолчанию

Цитата:
Я что-то не нашел подходящих свойств.
Вроде бы так:
Код:
var
  Border, //левая, правая, нижняя границы
  UpBorder: integer; //верхняя
begin
  Border := (Form1.Width - Form1.ClientWidth) div 2;
  UpBorder := Form1.Height - Form1.ClientHeight - Border;
end;
Не важно, как часто вы падаете. Важно, как часто вы поднимаетесь. Винс Ломбарди.

Последний раз редактировалось VVM; 06.04.2009 в 18:43.
VVM вне форума Ответить с цитированием
Старый 06.04.2009, 18:49   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

VVM, действительно ) Спс
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.04.2009, 19:02   #7
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Может легче хранить координаты мыши в глобальных переменных, а обновлять их вовремя ее движения(на картинке)?
Levsha100 вне форума Ответить с цитированием
Старый 06.04.2009, 20:45   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Levsha100
Может легче хранить координаты мыши в глобальных переменных, а обновлять их вовремя ее движения(на картинке)?
Зачем? Ведь требуется обрабатывать именно onClick. Следовательно, и координаты логично получать именно в обработчике.
А для движения есть onmousemove.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.04.2009, 21:16   #9
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
По умолчанию

для получения координат мыши можна использовать апишную функцыю

function GetCursorPos(var lpPoint: TPoint): BOOL;
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"
Ntlegend вне форума Ответить с цитированием
Старый 07.04.2009, 08:13   #10
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Есть событие
Код:
procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin

end;
Вот оттуда и можно брать X и Y
SERG1980 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка собственного ListView BOBAH13 Компоненты Delphi 10 14.12.2008 19:53
Изменить дату собственного файла ERASERROR Общие вопросы Delphi 1 24.02.2008 14:11
Разработка собственного класса 1ntro Общие вопросы C/C++ 3 16.12.2007 14:54
Установка собственного курсора Amateur Общие вопросы Delphi 4 13.11.2007 05:42
Создание собственного компонента Леха207 Помощь студентам 1 03.07.2007 12:45