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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2010, 19:27   #1
Сергей089
Форумчанин
 
Регистрация: 22.09.2008
Сообщений: 214
По умолчанию Метод для удержания button мышкой

Здравствуйте. У меня на форме рисуется точка. И с помощью кода
Код:
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
        switch (Key)
        {
                case 37: x--; break;
                case 38: y--; break;
                case 39: x++; break;
                case 40: y++; break;
        }
        Form1->Canvas->FillRect(Form1->Canvas->ClipRect);
        Form1->Canvas->MoveTo(x,y);
        Form1->Canvas->LineTo(x,y);
}
она двигается на форме при нажатии стрелок (нажать и держать). А как такое же проделать с Button, т.е. мышкой нажал и держишь Button, точка едет? Попробовал так
Код:
void __fastcall TForm1::Button1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
        x++;
        Form1->Canvas->FillRect(Form1->Canvas->ClipRect);
        Form1->Canvas->MoveTo(x,y);
        Form1->Canvas->LineTo(x,y);
}
но не получилось. Приходится много клацать мышкой .

Последний раз редактировалось Сергей089; 26.03.2010 в 19:47. Причина: Не тот код вставил
Сергей089 вне форума Ответить с цитированием
Старый 26.03.2010, 19:42   #2
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

MouseDown and MouseUp пример
Код:
 
private void button3_MouseDown(object sender, MouseEventArgs e)
        {
            b = true;
                Thread t = new Thread(f);
                t.Start();
        
        }
        void f()
        {
            while (b)
            {
                Invoke(new MethodInvoker(delegate
                    {
                        progressBar1.Value++;
                        Thread.Sleep(1000);
                    }));
            }
        }

        private void button3_MouseUp(object sender, MouseEventArgs e)
        {
            Thread r = new Thread(w);
            r.Start();
        }
        void w()
        {
            b = false;
        }
Cpluser вне форума Ответить с цитированием
Старый 26.03.2010, 20:01   #3
Сергей089
Форумчанин
 
Регистрация: 22.09.2008
Сообщений: 214
По умолчанию

Cpluser, нужно что-то подключить или объявить? А то у меня появляется [C++ Error] Unit1.cpp(66): E2451 Undefined symbol 'Thread'
Сергей089 вне форума Ответить с цитированием
Старый 26.03.2010, 20:04   #4
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Код:
using System.Threading;
Cpluser вне форума Ответить с цитированием
Старый 26.03.2010, 20:13   #5
Сергей089
Форумчанин
 
Регистрация: 22.09.2008
Сообщений: 214
По умолчанию

А куда нужно вставить эту строчку?
Сергей089 вне форума Ответить с цитированием
Старый 26.03.2010, 21:11   #6
Сергей089
Форумчанин
 
Регистрация: 22.09.2008
Сообщений: 214
По умолчанию

Смысл в том, чтобы выполнять два действия одновременно?
Сергей089 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод Change для фигур mchip Microsoft Office Excel 2 10.11.2009 15:51
метод для задержки времени wwwbaltazor JavaScript, Ajax 2 23.03.2009 22:30
Ввод диапазона для макроса мышкой 4yDoBuWe Microsoft Office Excel 5 01.12.2008 00:46
Событие для динамически созданной Button Dogmat Помощь студентам 8 24.07.2008 12:44
Программа для работы с мышкой!Информация о координатах, кнопках мышки!!! metamfetamin Помощь студентам 7 09.12.2007 12:01