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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2009, 22:10   #1
moff
 
Регистрация: 25.10.2009
Сообщений: 8
По умолчанию Перетаскивание кнопки

Подскажите пожалуйста, как реализовать перетаскивание кнопки по форме?
moff вне форума Ответить с цитированием
Старый 26.10.2009, 22:51   #2
Vitek-pm
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 56
По умолчанию

http://programmersforum.ru/showthrea...E6%E5%ED%E8%E5

только там перетаскивание PictureBox а по форме. Переделать не сложно :-)
Vitek-pm вне форума Ответить с цитированием
Старый 26.10.2009, 22:56   #3
moff
 
Регистрация: 25.10.2009
Сообщений: 8
По умолчанию

я читал это, там для визуал, а мне нужно в буилдере. Пробовал переделывать под буилдер - ничего не вышло
moff вне форума Ответить с цитированием
Старый 26.10.2009, 23:18   #4
Vitek-pm
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 56
По умолчанию

Код:
int flag_x, flag_y;

void __fastcall TForm1::FormCreate(TObject *Sender)
{
        flag_x = -1;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
flag_x = X;
flag_y = Y;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1MouseUp(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
flag_x = -1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1MouseMove(TObject *Sender,
      TShiftState Shift, int X, int Y)
{
if (flag_x!=-1)
{
        POINT mouse_pos;
        GetCursorPos(&mouse_pos);
        Button1->Left = (int)mouse_pos.x-Form1->Left-flag_x;
        Button1->Top = (int)mouse_pos.y-Form1->Top-flag_y;
}
}
-рабочий код, но здесь надо ещё чуть-чуть доделать - мышка не совсем на кнопке оказывается, надо к Button1->Top прибавить ещё высоту заголовка окна
Vitek-pm вне форума Ответить с цитированием
Старый 26.10.2009, 23:34   #5
moff
 
Регистрация: 25.10.2009
Сообщений: 8
По умолчанию

спасибо больше
moff вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перетаскивание окна Freedom Общие вопросы Delphi 12 23.11.2013 15:29
Перетаскивание формы. IVANSour Общие вопросы Delphi 2 03.02.2009 22:06
Перетаскивание geniy Компоненты Delphi 9 12.01.2009 02:10
UCOZ: Кнопки кнопки на изображении ReDuX HTML и CSS 19 25.04.2008 02:39
триггерные кнопки и кнопки переключатели в DELPHI MARGO Помощь студентам 3 12.11.2007 17:35