Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как в цикле запомнить 10 позиций клика мышью, клики мышью 
:(
    Опции темы
ershovdy
Дата 4.4.2012, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.4.2012

Репутация: нет
Всего: нет



Подскажите пожалуйста, как в цикле организовать ввод и запоминание 10 позиций курсора мыши после клика левой кнопки на экране?

То есть: 
Я кликаю левой кнопкой мыши по экрану в позиции №1 - программа запоминает координаты курсора и присваивает их соответственно X1, Y1
Я кликаю левой кнопкой мыши по экрану в позиции №2 - программа запоминает координаты курсора и присваивает их соответственно X2, Y2
...
Я кликаю левой кнопкой мыши по экрану в позиции №10 - программа запоминает координаты курсора и присваивает их соответственно X10, Y10

Значения координат  всех 10 точек мне будут нужны для дальнейшей работы. 
 smile 











Это сообщение отредактировал(а) ershovdy - 4.4.2012, 18:20
PM MAIL   Вверх
borisbn
Дата 4.4.2012, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 18
Всего: 135



Код

int mouse_xs[ 10 ];
int mouse_ys[ 10 ];
int mouse_coords_i = 0;

void функция_обработчик_нажатия_мыши( int x, int y ) {
    mouse_xs[ mouse_coords_i ] = x;
    mouse_ys[ mouse_coords_i ] = y;
    mouse_coords_i = ( mouse_coords_i + 1 ) % 10;
}



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
ershovdy
Дата 4.4.2012, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.4.2012

Репутация: нет
Всего: нет



borisbn, что надо написать вместо слов

"функция_обработчик_нажатия_мыши"

???



Это сообщение отредактировал(а) ershovdy - 4.4.2012, 21:59
PM MAIL   Вверх
borisbn
Дата 5.4.2012, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 18
Всего: 135



Код

void __fastcall TForm1::Form1MouseDown(TObject *, TMouseButton /*Button*/, TShiftState /*Shift*/, int x, int y )




--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
ershovdy
Дата 6.4.2012, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.4.2012

Репутация: нет
Всего: нет



borisbn, СПАСИБО за ответ, но НЕ работает...    smile 

пишет что:
[C++ Warning] Unitl .cpp(4): W8058 Cannot create pre-cornpiled header: write failed
[C++ Error] Unitl.cpp(25): E2188 Expression syntax
[C++ Error] Umt1.cpp(31): E2379 Statement missing ;
[C++ Warning] Unitl ,cpp(31): W8004 'rnouse_coords_i' is assigned a value that is never used

и в строке 

void__fastcall TForm1::Form1MouseDown(TObject *, TMouseButton /*Button*/, TShiftState /*Shift*/, int x, int y )

слова   "Form1MouseDown"   как я понимаю подразумевают клик мышью на форме (Form1), а мне надо брать координаты в любой другой части экрана, но не на форме "Form1"


Код

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::sButton1Click(TObject *Sender)
{
int mouse_xs[ 10 ];
int mouse_ys[ 10 ];
int mouse_coords_i = 0;

void__fastcall TForm1::Form1MouseDown(TObject *, TMouseButton /*Button*/, TShiftState /*Shift*/, int x, int y )
{
    mouse_xs[ mouse_coords_i ] = x;
    mouse_ys[ mouse_coords_i ] = y;
    mouse_coords_i = ( mouse_coords_i + 1 ) % 10;
}
}
//---------------------------------------------------------------------------


PM MAIL   Вверх
was3110
Дата 8.4.2012, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 29.3.2012
Где: Оренбург

Репутация: нет
Всего: нет



Да...

Не надо было процедуру-обработчик мыши в процедуру-обработчик кнопки совать.
PM MAIL WWW   Вверх
ershovdy
  Дата 8.4.2012, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.4.2012

Репутация: нет
Всего: нет



was3110, ты бы лучше написал как надо БЫЛО
PM MAIL   Вверх
xvr
Дата 9.4.2012, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Цитата(ershovdy @  8.4.2012,  23:08 Найти цитируемый пост)
was3110, ты бы лучше написал как надо БЫЛО 

Для начала надо было создать именно обработчик, т.е. пойти в Event'ы формы и сделать там event на MouseDown, а уж IDE сама поместит вам заготовку функции обработчика куда надо

Цитата(ershovdy @  6.4.2012,  14:36 Найти цитируемый пост)
а мне надо брать координаты в любой другой части экрана, но не на форме "Form1"

Тогда вам надо активизировать Mouse Capture для формы - все события от мыши будут сыпаться в форму, где бы мышь не находилась

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0872 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.